summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChrisB-Elektrobit <30663186+ChrisB-Elektrobit@users.noreply.github.com>2017-09-26 11:22:45 -0400
committerGitHub <noreply@github.com>2017-09-26 11:22:45 -0400
commited12d08ac6b90cfda647e79012ec16a78ea95035 (patch)
treea2c0cb211b2d4fd15ed57c4d4f8e0adc120d7735
parent1255b22f9610f0389b37566fdfaf6bbdaff88684 (diff)
parent100ccd00695fe05a20fe052503736cbc57021bcd (diff)
downloadsdl_ios-ed12d08ac6b90cfda647e79012ec16a78ea95035.tar.gz
Merge branch 'release/5.0.0' into feature/haptic_manager_rebase
-rw-r--r--SmartDeviceLink-iOS.podspec20
-rw-r--r--SmartDeviceLink-iOS.xcodeproj/project.pbxproj244
-rw-r--r--SmartDeviceLink.podspec21
-rw-r--r--SmartDeviceLink/SDLAbstractProtocol.h10
-rw-r--r--SmartDeviceLink/SDLAbstractProtocol.m28
-rw-r--r--SmartDeviceLink/SDLAppHMIType.h4
-rw-r--r--SmartDeviceLink/SDLAppHMIType.m1
-rw-r--r--SmartDeviceLink/SDLButtonName.h110
-rw-r--r--SmartDeviceLink/SDLButtonName.m18
-rw-r--r--SmartDeviceLink/SDLButtonPress.h40
-rw-r--r--SmartDeviceLink/SDLButtonPress.m56
-rw-r--r--SmartDeviceLink/SDLButtonPressResponse.h13
-rw-r--r--SmartDeviceLink/SDLButtonPressResponse.m20
-rw-r--r--SmartDeviceLink/SDLClimateControlCapabilities.h115
-rw-r--r--SmartDeviceLink/SDLClimateControlCapabilities.m130
-rw-r--r--SmartDeviceLink/SDLClimateControlData.h92
-rw-r--r--SmartDeviceLink/SDLClimateControlData.m115
-rw-r--r--SmartDeviceLink/SDLConfiguration.h36
-rw-r--r--SmartDeviceLink/SDLConfiguration.m7
-rw-r--r--SmartDeviceLink/SDLDefrostZone.h32
-rw-r--r--SmartDeviceLink/SDLDefrostZone.m10
-rw-r--r--SmartDeviceLink/SDLFunctionID.m7
-rw-r--r--SmartDeviceLink/SDLGetInteriorVehicleData.h42
-rwxr-xr-xSmartDeviceLink/SDLGetInteriorVehicleData.m72
-rw-r--r--SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h25
-rw-r--r--SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m40
-rw-r--r--SmartDeviceLink/SDLH264VideoEncoder.m10
-rw-r--r--SmartDeviceLink/SDLModuleData.h31
-rw-r--r--SmartDeviceLink/SDLModuleData.m65
-rw-r--r--SmartDeviceLink/SDLModuleType.h17
-rw-r--r--SmartDeviceLink/SDLModuleType.m8
-rw-r--r--SmartDeviceLink/SDLMyKey.h1
-rw-r--r--SmartDeviceLink/SDLNames.h59
-rw-r--r--SmartDeviceLink/SDLNames.m61
-rw-r--r--SmartDeviceLink/SDLNotificationConstants.h12
-rw-r--r--SmartDeviceLink/SDLNotificationConstants.m7
-rw-r--r--SmartDeviceLink/SDLNotificationDispatcher.m21
-rw-r--r--SmartDeviceLink/SDLOnInteriorVehicleData.h16
-rw-r--r--SmartDeviceLink/SDLOnInteriorVehicleData.m30
-rw-r--r--SmartDeviceLink/SDLProtocol.h7
-rw-r--r--SmartDeviceLink/SDLProtocol.m55
-rw-r--r--SmartDeviceLink/SDLProtocolHeader.h1
-rw-r--r--SmartDeviceLink/SDLProtocolHeader.m8
-rw-r--r--SmartDeviceLink/SDLProtocolListener.h5
-rw-r--r--SmartDeviceLink/SDLProtocolMessage.h2
-rw-r--r--SmartDeviceLink/SDLProtocolMessage.m4
-rw-r--r--SmartDeviceLink/SDLProxy.h2
-rw-r--r--SmartDeviceLink/SDLProxy.m19
-rw-r--r--SmartDeviceLink/SDLProxyListener.h8
-rwxr-xr-xSmartDeviceLink/SDLRDSData.h78
-rwxr-xr-xSmartDeviceLink/SDLRDSData.m95
-rw-r--r--SmartDeviceLink/SDLRadioBand.h26
-rw-r--r--SmartDeviceLink/SDLRadioBand.m9
-rw-r--r--SmartDeviceLink/SDLRadioControlCapabilities.h98
-rw-r--r--SmartDeviceLink/SDLRadioControlCapabilities.m116
-rw-r--r--SmartDeviceLink/SDLRadioControlData.h103
-rw-r--r--SmartDeviceLink/SDLRadioControlData.m111
-rw-r--r--SmartDeviceLink/SDLRadioState.h35
-rw-r--r--SmartDeviceLink/SDLRadioState.m10
-rw-r--r--SmartDeviceLink/SDLRemoteControlCapabilities.h42
-rw-r--r--SmartDeviceLink/SDLRemoteControlCapabilities.m54
-rw-r--r--SmartDeviceLink/SDLResult.h10
-rw-r--r--SmartDeviceLink/SDLResult.m3
-rw-r--r--SmartDeviceLink/SDLSetInteriorVehicleData.h28
-rw-r--r--SmartDeviceLink/SDLSetInteriorVehicleData.m41
-rw-r--r--SmartDeviceLink/SDLSetInteriorVehicleDataResponse.h24
-rw-r--r--SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m30
-rw-r--r--SmartDeviceLink/SDLShow.h2
-rw-r--r--SmartDeviceLink/SDLShow.m21
-rw-r--r--SmartDeviceLink/SDLStateMachine.m11
-rw-r--r--SmartDeviceLink/SDLStreamingMediaConfiguration.h2
-rw-r--r--SmartDeviceLink/SDLStreamingMediaLifecycleManager.m11
-rw-r--r--SmartDeviceLink/SDLSyncMsgVersion.h5
-rw-r--r--SmartDeviceLink/SDLSyncMsgVersion.m15
-rwxr-xr-x[-rw-r--r--]SmartDeviceLink/SDLSystemCapability.h5
-rwxr-xr-x[-rw-r--r--]SmartDeviceLink/SDLSystemCapability.m21
-rwxr-xr-x[-rw-r--r--]SmartDeviceLink/SDLSystemCapabilityType.h6
-rwxr-xr-x[-rw-r--r--]SmartDeviceLink/SDLSystemCapabilityType.m1
-rw-r--r--SmartDeviceLink/SDLTemperature.h29
-rw-r--r--SmartDeviceLink/SDLTemperature.m43
-rw-r--r--SmartDeviceLink/SDLTemperatureUnit.h19
-rw-r--r--SmartDeviceLink/SDLTemperatureUnit.m8
-rw-r--r--SmartDeviceLink/SDLTimer.h2
-rw-r--r--SmartDeviceLink/SDLVentilationMode.h28
-rw-r--r--SmartDeviceLink/SDLVentilationMode.m11
-rw-r--r--SmartDeviceLink/SmartDeviceLink.h21
-rw-r--r--SmartDeviceLinkTests/DevAPISpecs/SDLConfigurationSpec.m37
-rw-r--r--SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleManagerSpec.m19
-rw-r--r--SmartDeviceLinkTests/DevAPISpecs/SDLNotificationDispatcherSpec.m3
-rw-r--r--SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLV2ProtocolHeaderSpec.m30
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAppHMITypeSpec.m1
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLButtonNameSpec.m18
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLRadioBandSpec.m22
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLRadioStateSpec.m24
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLResultSpec.m3
-rwxr-xr-x[-rw-r--r--]SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSystemCapabilityTypeSpec.m1
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTemperatureUnitSpec.m22
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVentilationModeSpec.m24
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnInteriorVehicleDataSpec.m49
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLButtonPressSpec.m63
-rwxr-xr-xSmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetInteriorVehicleDataSpec.m68
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetSystemCapabilitiesSpec.m4
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetInteriorVehicleDataSpec.m51
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLButtonPressResponseSpec.m16
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetInteriorVehicleDataResponseSpec.m56
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetInteriorVehicleDataResponseSpec.m50
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlCapabilitiesSpec.m113
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlDataSpec.m110
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLModuleDataSpec.m71
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRDSDataSpec.m89
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlCapabilitiesSpec.m101
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlDataSpec.m99
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRemoteControlCapabilitiesSpec.m66
-rwxr-xr-x[-rw-r--r--]SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSystemCapabilitySpec.m23
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTemperatureSpec.m54
-rw-r--r--SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testAppAndVehicleIcons@2x.pngbin101990 -> 102078 bytes
-rw-r--r--SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testLightBackgroundNoAppNoVehicleIcons@2x.pngbin43302 -> 45342 bytes
-rw-r--r--SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testNoAppNoVehicleIcons@2x.pngbin46044 -> 47645 bytes
-rw-r--r--SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyAppIcon@2x.pngbin52929 -> 53027 bytes
-rw-r--r--SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyVehicleIcon@2x.pngbin56437 -> 56534 bytes
120 files changed, 3934 insertions, 284 deletions
diff --git a/SmartDeviceLink-iOS.podspec b/SmartDeviceLink-iOS.podspec
index a9d4a73d0..f1c022981 100644
--- a/SmartDeviceLink-iOS.podspec
+++ b/SmartDeviceLink-iOS.podspec
@@ -30,6 +30,7 @@ ss.public_header_files = [
'SmartDeviceLink/SDLAlertManeuver.h',
'SmartDeviceLink/SDLAlertManeuverResponse.h',
'SmartDeviceLink/SDLAlertResponse.h',
+'SmartDeviceLink/SDLButtonPressResponse.h',
'SmartDeviceLink/SDLAmbientLightStatus.h',
'SmartDeviceLink/SDLAppHMIType.h',
'SmartDeviceLink/SDLAppInfo.h',
@@ -50,6 +51,8 @@ ss.public_header_files = [
'SmartDeviceLink/SDLChangeRegistrationResponse.h',
'SmartDeviceLink/SDLCharacterSet.h',
'SmartDeviceLink/SDLChoice.h',
+'SmartDeviceLink/SDLClimateControlCapabilities.h',
+'SmartDeviceLink/SDLClimateControlData.h',
'SmartDeviceLink/SDLClusterModeStatus.h',
'SmartDeviceLink/SDLCompassDirection.h',
'SmartDeviceLink/SDLComponentVolumeStatus.h',
@@ -57,6 +60,7 @@ ss.public_header_files = [
'SmartDeviceLink/SDLCreateInteractionChoiceSet.h',
'SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h',
'SmartDeviceLink/SDLDateTime.h',
+'SmartDeviceLink/SDLDefrostZone.h',
'SmartDeviceLink/SDLDeleteCommand.h',
'SmartDeviceLink/SDLDeleteCommandResponse.h',
'SmartDeviceLink/SDLDeleteFile.h',
@@ -95,7 +99,9 @@ ss.public_header_files = [
'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',
@@ -149,6 +155,8 @@ ss.public_header_files = [
'SmartDeviceLink/SDLManager.h',
'SmartDeviceLink/SDLManagerDelegate.h',
'SmartDeviceLink/SDLMediaClockFormat.h',
+'SmartDeviceLink/SDLModuleData.h',
+'SmartDeviceLink/SDLModuleType.h',
'SmartDeviceLink/SDLMenuParams.h',
'SmartDeviceLink/SDLMetadataTags.h',
'SmartDeviceLink/SDLMetadataType.h',
@@ -164,6 +172,7 @@ ss.public_header_files = [
'SmartDeviceLink/SDLOnDriverDistraction.h',
'SmartDeviceLink/SDLOnEncodedSyncPData.h',
'SmartDeviceLink/SDLOnHashChange.h',
+'SmartDeviceLink/SDLOnInteriorVehicleData.h',
'SmartDeviceLink/SDLOnHMIStatus.h',
'SmartDeviceLink/SDLOnKeyboardInput.h',
'SmartDeviceLink/SDLOnLanguageChange.h',
@@ -213,6 +222,12 @@ ss.public_header_files = [
'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',
@@ -233,7 +248,9 @@ ss.public_header_files = [
'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',
@@ -267,6 +284,8 @@ ss.public_header_files = [
'SmartDeviceLink/SDLSystemCapabilityType.h',
'SmartDeviceLink/SDLSystemContext.h',
'SmartDeviceLink/SDLTBTState.h',
+'SmartDeviceLink/SDLTemperature.h',
+'SmartDeviceLink/SDLTemperatureUnit.h',
'SmartDeviceLink/SDLTCPTransport.h',
'SmartDeviceLink/SDLTextAlignment.h',
'SmartDeviceLink/SDLTextField.h',
@@ -302,6 +321,7 @@ ss.public_header_files = [
'SmartDeviceLink/SDLVehicleDataResultCode.h',
'SmartDeviceLink/SDLVehicleDataStatus.h',
'SmartDeviceLink/SDLVehicleDataType.h',
+'SmartDeviceLink/SDLVentilationMode.h',
'SmartDeviceLink/SDLVehicleType.h',
'SmartDeviceLink/SDLVideoStreamingCapability.h',
'SmartDeviceLink/SDLVideoStreamingCodec.h',
diff --git a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj
index fb2033451..4e56793ab 100644
--- a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj
+++ b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj
@@ -236,6 +236,67 @@
1FF7DABA1F75B2A800B46C30 /* SDLHapticManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FF7DAB91F75B2A800B46C30 /* SDLHapticManager.h */; };
1FF7DABC1F75B2BF00B46C30 /* SDLHapticManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FF7DABB1F75B2BF00B46C30 /* SDLHapticManager.m */; };
1FF7DAC01F75CF6C00B46C30 /* SDLHapticManagerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FF7DABF1F75CF6C00B46C30 /* SDLHapticManagerSpec.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 */; };
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, ); }; };
@@ -1362,6 +1423,67 @@
1FF7DAB91F75B2A800B46C30 /* SDLHapticManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLHapticManager.h; sourceTree = "<group>"; };
1FF7DABB1F75B2BF00B46C30 /* SDLHapticManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLHapticManager.m; sourceTree = "<group>"; };
1FF7DABF1F75CF6C00B46C30 /* SDLHapticManagerSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLHapticManagerSpec.m; path = ProxySpecs/SDLHapticManagerSpec.m; sourceTree = "<group>"; };
+ 1E5AD0321F1F3AA30029B8AF /* SDLRemoteControlCapabilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLRemoteControlCapabilities.h; sourceTree = "<group>"; };
+ 1E5AD0331F1F3AA30029B8AF /* SDLRemoteControlCapabilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRemoteControlCapabilities.m; sourceTree = "<group>"; };
+ 1E5AD0361F1F4E390029B8AF /* SDLClimateControlCapabilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLClimateControlCapabilities.h; sourceTree = "<group>"; };
+ 1E5AD0371F1F4E390029B8AF /* SDLClimateControlCapabilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLClimateControlCapabilities.m; sourceTree = "<group>"; };
+ 1E5AD03E1F1F58480029B8AF /* SDLVentilationMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLVentilationMode.h; sourceTree = "<group>"; };
+ 1E5AD03F1F1F58480029B8AF /* SDLVentilationMode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVentilationMode.m; sourceTree = "<group>"; };
+ 1E5AD0421F1F5A1F0029B8AF /* SDLRadioControlCapabilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLRadioControlCapabilities.h; sourceTree = "<group>"; };
+ 1E5AD0431F1F5A1F0029B8AF /* SDLRadioControlCapabilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRadioControlCapabilities.m; sourceTree = "<group>"; };
+ 1E5AD0461F1F773E0029B8AF /* SDLModuleType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLModuleType.h; sourceTree = "<group>"; };
+ 1E5AD0471F1F773E0029B8AF /* SDLModuleType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLModuleType.m; sourceTree = "<group>"; };
+ 1E5AD04A1F1F79640029B8AF /* SDLDefrostZone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLDefrostZone.h; sourceTree = "<group>"; };
+ 1E5AD04B1F1F79640029B8AF /* SDLDefrostZone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLDefrostZone.m; sourceTree = "<group>"; };
+ 1E5AD04E1F1F7BF10029B8AF /* SDLRadioBand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLRadioBand.h; sourceTree = "<group>"; };
+ 1E5AD04F1F1F7BF10029B8AF /* SDLRadioBand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRadioBand.m; sourceTree = "<group>"; };
+ 1E5AD05A1F2064A80029B8AF /* SDLRDSData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLRDSData.h; sourceTree = "<group>"; };
+ 1E5AD05B1F2064A80029B8AF /* SDLRDSData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRDSData.m; sourceTree = "<group>"; };
+ 1E5AD05E1F207AB10029B8AF /* SDLRadioState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLRadioState.h; sourceTree = "<group>"; };
+ 1E5AD05F1F207AB10029B8AF /* SDLRadioState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRadioState.m; sourceTree = "<group>"; };
+ 1E5AD0621F207DD50029B8AF /* SDLTemperature.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLTemperature.h; sourceTree = "<group>"; };
+ 1E5AD0631F207DD50029B8AF /* SDLTemperature.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLTemperature.m; sourceTree = "<group>"; };
+ 1E5AD0661F2080B50029B8AF /* SDLRadioControlData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLRadioControlData.h; sourceTree = "<group>"; };
+ 1E5AD0671F2080B50029B8AF /* SDLRadioControlData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRadioControlData.m; sourceTree = "<group>"; };
+ 1E5AD06A1F208BAB0029B8AF /* SDLClimateControlData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLClimateControlData.h; sourceTree = "<group>"; };
+ 1E5AD06B1F208BAB0029B8AF /* SDLClimateControlData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLClimateControlData.m; sourceTree = "<group>"; };
+ 1E5AD06E1F209C880029B8AF /* SDLModuleData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLModuleData.h; sourceTree = "<group>"; };
+ 1E5AD06F1F209C880029B8AF /* SDLModuleData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLModuleData.m; sourceTree = "<group>"; };
+ 1E5AD07E1F20B73E0029B8AF /* SDLButtonPress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLButtonPress.h; sourceTree = "<group>"; };
+ 1E5AD07F1F20B73E0029B8AF /* SDLButtonPress.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLButtonPress.m; sourceTree = "<group>"; };
+ 1E5AD0821F20B9290029B8AF /* SDLButtonPressResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLButtonPressResponse.h; sourceTree = "<group>"; };
+ 1E5AD0831F20B9290029B8AF /* SDLButtonPressResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLButtonPressResponse.m; sourceTree = "<group>"; };
+ 1E5AD0861F20B9AA0029B8AF /* SDLGetInteriorVehicleData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLGetInteriorVehicleData.h; sourceTree = "<group>"; };
+ 1E5AD0871F20B9AA0029B8AF /* SDLGetInteriorVehicleData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLGetInteriorVehicleData.m; sourceTree = "<group>"; };
+ 1E5AD08A1F20BC320029B8AF /* SDLGetInteriorVehicleDataResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLGetInteriorVehicleDataResponse.h; sourceTree = "<group>"; };
+ 1E5AD08B1F20BC320029B8AF /* SDLGetInteriorVehicleDataResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLGetInteriorVehicleDataResponse.m; sourceTree = "<group>"; };
+ 1E5AD08E1F20BE820029B8AF /* SDLSetInteriorVehicleData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSetInteriorVehicleData.h; sourceTree = "<group>"; };
+ 1E5AD08F1F20BE820029B8AF /* SDLSetInteriorVehicleData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSetInteriorVehicleData.m; sourceTree = "<group>"; };
+ 1E5AD0921F20BEAD0029B8AF /* SDLSetInteriorVehicleDataResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSetInteriorVehicleDataResponse.h; sourceTree = "<group>"; };
+ 1E5AD0931F20BEAD0029B8AF /* SDLSetInteriorVehicleDataResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSetInteriorVehicleDataResponse.m; sourceTree = "<group>"; };
+ 1E5AD0961F20C0FB0029B8AF /* SDLOnInteriorVehicleData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLOnInteriorVehicleData.h; sourceTree = "<group>"; };
+ 1E5AD0971F20C0FB0029B8AF /* SDLOnInteriorVehicleData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLOnInteriorVehicleData.m; sourceTree = "<group>"; };
+ 1EE48E8E1F2F0EE700B98D08 /* SDLTemperatureUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLTemperatureUnit.h; sourceTree = "<group>"; };
+ 1EE48E8F1F2F0EE700B98D08 /* SDLTemperatureUnit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLTemperatureUnit.m; sourceTree = "<group>"; };
+ 1EE8C4371F347C7300FDC2CF /* SDLRadioBandSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRadioBandSpec.m; sourceTree = "<group>"; };
+ 1EE8C4391F347D4D00FDC2CF /* SDLRadioStateSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRadioStateSpec.m; sourceTree = "<group>"; };
+ 1EE8C43B1F347EAE00FDC2CF /* SDLTemperatureUnitSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLTemperatureUnitSpec.m; sourceTree = "<group>"; };
+ 1EE8C43D1F347F0500FDC2CF /* SDLVentilationModeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVentilationModeSpec.m; sourceTree = "<group>"; };
+ 1EE8C43F1F348D3200FDC2CF /* SDLClimateControlCapabilitiesSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLClimateControlCapabilitiesSpec.m; sourceTree = "<group>"; };
+ 1EE8C4431F34A1B900FDC2CF /* SDLClimateControlDataSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLClimateControlDataSpec.m; sourceTree = "<group>"; };
+ 1EE8C4451F3837D200FDC2CF /* SDLModuleDataSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLModuleDataSpec.m; sourceTree = "<group>"; };
+ 1EE8C4471F38430900FDC2CF /* SDLRadioControlCapabilitiesSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRadioControlCapabilitiesSpec.m; sourceTree = "<group>"; };
+ 1EE8C4491F3846D300FDC2CF /* SDLRadioControlDataSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRadioControlDataSpec.m; sourceTree = "<group>"; };
+ 1EE8C44B1F385C7100FDC2CF /* SDLRDSDataSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRDSDataSpec.m; sourceTree = "<group>"; };
+ 1EE8C44F1F38629200FDC2CF /* SDLRemoteControlCapabilitiesSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRemoteControlCapabilitiesSpec.m; sourceTree = "<group>"; };
+ 1EE8C4511F38657D00FDC2CF /* SDLTemperatureSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLTemperatureSpec.m; sourceTree = "<group>"; };
+ 1EE8C4531F38762E00FDC2CF /* SDLOnInteriorVehicleDataSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLOnInteriorVehicleDataSpec.m; sourceTree = "<group>"; };
+ 1EE8C4551F38788A00FDC2CF /* SDLButtonPressSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLButtonPressSpec.m; sourceTree = "<group>"; };
+ 1EE8C4571F387ABD00FDC2CF /* SDLButtonPressResponseSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLButtonPressResponseSpec.m; sourceTree = "<group>"; };
+ 1EE8C4591F387BBB00FDC2CF /* SDLGetInteriorVehicleDataSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLGetInteriorVehicleDataSpec.m; sourceTree = "<group>"; };
+ 1EE8C45C1F387D1C00FDC2CF /* SDLGetInteriorVehicleDataResponseSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLGetInteriorVehicleDataResponseSpec.m; sourceTree = "<group>"; };
+ 1EE8C45E1F3884FF00FDC2CF /* SDLSetInteriorVehicleDataSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSetInteriorVehicleDataSpec.m; sourceTree = "<group>"; };
+ 1EE8C4601F38865B00FDC2CF /* SDLSetInteriorVehicleDataResponseSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSetInteriorVehicleDataResponseSpec.m; sourceTree = "<group>"; };
332A913C1CED87F80043824C /* SDLAppInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLAppInfo.h; sourceTree = "<group>"; };
332A913D1CED87F80043824C /* SDLAppInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLAppInfo.m; sourceTree = "<group>"; };
5D00AC651F140F0A004000D9 /* SDLSystemCapabilityType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSystemCapabilityType.h; sourceTree = "<group>"; };
@@ -2334,6 +2456,7 @@
162E820B1A9BDE8A00906325 /* SDLPrerecordedSpeechSpec.m */,
162E820C1A9BDE8A00906325 /* SDLPrimaryAudioSource.m */,
162E820D1A9BDE8A00906325 /* SDLPRNDLSpec.m */,
+ 1EE8C4371F347C7300FDC2CF /* SDLRadioBandSpec.m */,
162E820E1A9BDE8A00906325 /* SDLRequestTypeSpec.m */,
162E820F1A9BDE8A00906325 /* SDLResultSpec.m */,
162E82111A9BDE8A00906325 /* SDLSamplingRateSpec.m */,
@@ -2361,6 +2484,9 @@
162E82251A9BDE8A00906325 /* SDLWiperStatusSpec.m */,
8B7B31A81F2FB8BC00BDC38D /* SDLVideoStreamingProtocolSpec.m */,
8B7B31AA1F2FB93500BDC38D /* SDLVideoStreamingCodecSpec.m */,
+ 1EE8C4391F347D4D00FDC2CF /* SDLRadioStateSpec.m */,
+ 1EE8C43B1F347EAE00FDC2CF /* SDLTemperatureUnitSpec.m */,
+ 1EE8C43D1F347F0500FDC2CF /* SDLVentilationModeSpec.m */,
);
path = EnumSpecs;
sourceTree = "<group>";
@@ -2377,6 +2503,7 @@
162E822F1A9BDE8A00906325 /* SDLOnEncodedSyncPDataSpec.m */,
162E82301A9BDE8A00906325 /* SDLOnHashChangeSpec.m */,
162E82311A9BDE8A00906325 /* SDLOnHMIStatusSpec.m */,
+ 1EE8C4531F38762E00FDC2CF /* SDLOnInteriorVehicleDataSpec.m */,
162E82321A9BDE8A00906325 /* SDLOnKeyboardInputSpec.m */,
162E82331A9BDE8A00906325 /* SDLOnLanguageChangeSpec.m */,
162E82341A9BDE8A00906325 /* SDLOnLockScreenStatusSpec.m */,
@@ -2406,6 +2533,7 @@
162E823F1A9BDE8A00906325 /* SDLAddSubMenuSpec.m */,
162E82401A9BDE8A00906325 /* SDLAlertManeuverSpec.m */,
162E82411A9BDE8A00906325 /* SDLAlertSpec.m */,
+ 1EE8C4551F38788A00FDC2CF /* SDLButtonPressSpec.m */,
162E82421A9BDE8A00906325 /* SDLChangeRegistrationSpec.m */,
162E82431A9BDE8A00906325 /* SDLCreateInteractionChoiceSetSpec.m */,
162E82441A9BDE8A00906325 /* SDLDeleteCommandSpec.m */,
@@ -2417,6 +2545,7 @@
162E82491A9BDE8A00906325 /* SDLEncodedSyncPDataSpec.m */,
162E824A1A9BDE8A00906325 /* SDLEndAudioPassThruSpec.m */,
162E824B1A9BDE8A00906325 /* SDLGetDTCsSpec.m */,
+ 1EE8C4591F387BBB00FDC2CF /* SDLGetInteriorVehicleDataSpec.m */,
5D0A9F991F15636800CC80DD /* SDLGetSystemCapabilitiesSpec.m */,
162E824C1A9BDE8A00906325 /* SDLGetVehicleDataSpec.m */,
DA9F7EA11DCC05E100ACAE48 /* SDLGetWaypointsSpec.m */,
@@ -2447,6 +2576,7 @@
162E82631A9BDE8A00906325 /* SDLUnsubscribeVehicleDataSpec.m */,
DA9F7EA51DCC05F500ACAE48 /* SDLUnsubscribeWaypointsSpec.m */,
162E82641A9BDE8A00906325 /* SDLUpdateTurnListSpec.m */,
+ 1EE8C45E1F3884FF00FDC2CF /* SDLSetInteriorVehicleDataSpec.m */,
8877F5EA1F34A3BE00DC128A /* SDLSendHapticDataSpec.m */,
);
path = RequestSpecs;
@@ -2459,6 +2589,7 @@
162E82671A9BDE8A00906325 /* SDLAddSubMenuResponseSpec.m */,
162E82681A9BDE8A00906325 /* SDLAlertManeuverResponseSpec.m */,
162E82691A9BDE8A00906325 /* SDLAlertResponseSpec.m */,
+ 1EE8C4571F387ABD00FDC2CF /* SDLButtonPressResponseSpec.m */,
162E826A1A9BDE8A00906325 /* SDLChangeRegistrationResponseSpec.m */,
162E826B1A9BDE8A00906325 /* SDLCreateInteractionChoiceSetResponseSpec.m */,
162E826C1A9BDE8A00906325 /* SDLDeleteCommandResponseSpec.m */,
@@ -2471,6 +2602,7 @@
162E82721A9BDE8A00906325 /* SDLEndAudioPassThruResponseSpec.m */,
162E82731A9BDE8A00906325 /* SDLGenericResponseSpec.m */,
162E82741A9BDE8A00906325 /* SDLGetDTCsResponseSpec.m */,
+ 1EE8C45C1F387D1C00FDC2CF /* SDLGetInteriorVehicleDataResponseSpec.m */,
5D0A9F9B1F1565EB00CC80DD /* SDLGetSystemCapabilityResponseSpec.m */,
162E82751A9BDE8A00906325 /* SDLGetVehicleDataResponseSpec.m */,
DA9F7EA71DCC060B00ACAE48 /* SDLGetWaypointsResponseSpec.m */,
@@ -2486,6 +2618,7 @@
162E827E1A9BDE8A00906325 /* SDLSetAppIconResponseSpec.m */,
162E827F1A9BDE8A00906325 /* SDLSetDisplayLayoutResponseSpec.m */,
162E82801A9BDE8A00906325 /* SDLSetGlobalPropertiesResponseSpec.m */,
+ 1EE8C4601F38865B00FDC2CF /* SDLSetInteriorVehicleDataResponseSpec.m */,
162E82811A9BDE8A00906325 /* SDLSetMediaClockTimerResponseSpec.m */,
162E82821A9BDE8A00906325 /* SDLShowConstantTBTResponseSpec.m */,
162E82831A9BDE8A00906325 /* SDLShowResponseSpec.m */,
@@ -2516,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 */,
@@ -2536,6 +2671,7 @@
DA9F7EAD1DCC063400ACAE48 /* SDLLocationCoordinateSpec.m */,
DA9F7EAE1DCC063400ACAE48 /* SDLLocationDetailsSpec.m */,
162E82A21A9BDE8A00906325 /* SDLMenuParamsSpec.m */,
+ 1EE8C4451F3837D200FDC2CF /* SDLModuleDataSpec.m */,
8B9376DA1F33656C009605C4 /* SDLMetadataTagsSpec.m */,
162E82A31A9BDE8A00906325 /* SDLMyKeySpec.m */,
5D0A9F921F15560B00CC80DD /* SDLNavigationCapabilitySpec.m */,
@@ -2544,6 +2680,10 @@
162E82A51A9BDE8A00906325 /* SDLPermissionItemSpec.m */,
5D0A9F941F15585B00CC80DD /* SDLPhoneCapabilitySpec.m */,
162E82A61A9BDE8A00906325 /* SDLPresetBankCapabilitiesSpec.m */,
+ 1EE8C4471F38430900FDC2CF /* SDLRadioControlCapabilitiesSpec.m */,
+ 1EE8C4491F3846D300FDC2CF /* SDLRadioControlDataSpec.m */,
+ 1EE8C44B1F385C7100FDC2CF /* SDLRDSDataSpec.m */,
+ 1EE8C44F1F38629200FDC2CF /* SDLRemoteControlCapabilitiesSpec.m */,
5DADA7771F4E059E0084D17D /* SDLRectangleSpec.m */,
162E82A71A9BDE8A00906325 /* SDLScreenParamsSpec.m */,
162E82A81A9BDE8A00906325 /* SDLSingleTireStatusSpec.m */,
@@ -2552,6 +2692,7 @@
162E82AB1A9BDE8A00906325 /* SDLStartTimeSpec.m */,
162E82AC1A9BDE8A00906325 /* SDLSyncMsgVersionSpec.m */,
5D0A9F961F1559EC00CC80DD /* SDLSystemCapabilitySpec.m */,
+ 1EE8C4511F38657D00FDC2CF /* SDLTemperatureSpec.m */,
162E82AD1A9BDE8A00906325 /* SDLTextFieldSpec.m */,
162E82AE1A9BDE8A00906325 /* SDLTireStatusSpec.m */,
162E82AF1A9BDE8A00906325 /* SDLTouchCoordSpec.m */,
@@ -2943,6 +3084,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 */,
@@ -2965,6 +3108,8 @@
5D61FAB71A84238A00846EE7 /* SDLEndAudioPassThru.m */,
5D61FAC41A84238A00846EE7 /* SDLGetDTCs.h */,
5D61FAC51A84238A00846EE7 /* SDLGetDTCs.m */,
+ 1E5AD0861F20B9AA0029B8AF /* SDLGetInteriorVehicleData.h */,
+ 1E5AD0871F20B9AA0029B8AF /* SDLGetInteriorVehicleData.m */,
5D00AC6D1F1511B9004000D9 /* SDLGetSystemCapability.h */,
5D00AC6E1F1511B9004000D9 /* SDLGetSystemCapability.m */,
5D61FAC81A84238A00846EE7 /* SDLGetVehicleData.h */,
@@ -2997,6 +3142,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 */,
@@ -3042,6 +3189,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 */,
@@ -3066,6 +3215,8 @@
5D61FAC31A84238A00846EE7 /* SDLGenericResponse.m */,
5D61FAC61A84238A00846EE7 /* SDLGetDTCsResponse.h */,
5D61FAC71A84238A00846EE7 /* SDLGetDTCsResponse.m */,
+ 1E5AD08A1F20BC320029B8AF /* SDLGetInteriorVehicleDataResponse.h */,
+ 1E5AD08B1F20BC320029B8AF /* SDLGetInteriorVehicleDataResponse.m */,
5D00AC711F151CFE004000D9 /* SDLGetSystemCapabilityResponse.h */,
5D00AC721F151CFE004000D9 /* SDLGetSystemCapabilityResponse.m */,
5D61FACA1A84238A00846EE7 /* SDLGetVehicleDataResponse.h */,
@@ -3098,6 +3249,8 @@
5D61FB991A84238B00846EE7 /* SDLSetDisplayLayoutResponse.m */,
5D61FB9C1A84238B00846EE7 /* SDLSetGlobalPropertiesResponse.h */,
5D61FB9D1A84238B00846EE7 /* SDLSetGlobalPropertiesResponse.m */,
+ 1E5AD0921F20BEAD0029B8AF /* SDLSetInteriorVehicleDataResponse.h */,
+ 1E5AD0931F20BEAD0029B8AF /* SDLSetInteriorVehicleDataResponse.m */,
5D61FBA01A84238B00846EE7 /* SDLSetMediaClockTimerResponse.h */,
5D61FBA11A84238B00846EE7 /* SDLSetMediaClockTimerResponse.m */,
5D61FBA61A84238B00846EE7 /* SDLShowConstantTBTResponse.h */,
@@ -3149,6 +3302,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 */,
@@ -3189,6 +3346,8 @@
DA9F7E981DCC052C00ACAE48 /* SDLLocationDetails.m */,
5D61FB0B1A84238A00846EE7 /* SDLMenuParams.h */,
5D61FB0C1A84238A00846EE7 /* SDLMenuParams.m */,
+ 1E5AD06E1F209C880029B8AF /* SDLModuleData.h */,
+ 1E5AD06F1F209C880029B8AF /* SDLModuleData.m */,
8B9376D51F3349FC009605C4 /* SDLMetadataTags.h */,
8B9376D61F3349FC009605C4 /* SDLMetadataTags.m */,
5D61FB0D1A84238A00846EE7 /* SDLMyKey.h */,
@@ -3205,6 +3364,14 @@
5D00AC7A1F15287E004000D9 /* SDLPhoneCapability.m */,
5D61FB4E1A84238B00846EE7 /* SDLPresetBankCapabilities.h */,
5D61FB4F1A84238B00846EE7 /* SDLPresetBankCapabilities.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 */,
@@ -3221,6 +3388,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 */,
@@ -3278,6 +3447,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 */,
@@ -3328,6 +3499,8 @@
5D61FB081A84238A00846EE7 /* SDLMaintenanceModeStatus.m */,
5D61FB091A84238A00846EE7 /* SDLMediaClockFormat.h */,
5D61FB0A1A84238A00846EE7 /* SDLMediaClockFormat.m */,
+ 1E5AD0461F1F773E0029B8AF /* SDLModuleType.h */,
+ 1E5AD0471F1F773E0029B8AF /* SDLModuleType.m */,
8BBEA6041F324165003EEA26 /* SDLMetadataType.h */,
8BBEA6051F324165003EEA26 /* SDLMetadataType.m */,
5D61FB421A84238B00846EE7 /* SDLPermissionStatus.h */,
@@ -3344,6 +3517,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 */,
@@ -3363,6 +3540,8 @@
5D61FBD11A84238B00846EE7 /* SDLSystemContext.m */,
5D61FBD61A84238B00846EE7 /* SDLTBTState.h */,
5D61FBD71A84238B00846EE7 /* SDLTBTState.m */,
+ 1EE48E8E1F2F0EE700B98D08 /* SDLTemperatureUnit.h */,
+ 1EE48E8F1F2F0EE700B98D08 /* SDLTemperatureUnit.m */,
5D61FBDA1A84238B00846EE7 /* SDLTextAlignment.h */,
5D61FBDB1A84238C00846EE7 /* SDLTextAlignment.m */,
5D61FBDE1A84238C00846EE7 /* SDLTextFieldName.h */,
@@ -3387,6 +3566,8 @@
5D61FC1B1A84238C00846EE7 /* SDLVehicleDataStatus.m */,
5D61FC1C1A84238C00846EE7 /* SDLVehicleDataType.h */,
5D61FC1D1A84238C00846EE7 /* SDLVehicleDataType.m */,
+ 1E5AD03E1F1F58480029B8AF /* SDLVentilationMode.h */,
+ 1E5AD03F1F1F58480029B8AF /* SDLVentilationMode.m */,
5D61FC201A84238C00846EE7 /* SDLVrCapabilities.h */,
5D61FC211A84238C00846EE7 /* SDLVrCapabilities.m */,
5D61FC241A84238C00846EE7 /* SDLWarningLightStatus.h */,
@@ -3464,6 +3645,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 */,
@@ -4434,6 +4617,7 @@
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 */,
@@ -4610,6 +4794,26 @@
5D61FD2B1A84238C00846EE7 /* SDLPerformInteractionResponse.h in Headers */,
5D61FDA11A84238C00846EE7 /* SDLSoftButtonCapabilities.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 */,
@@ -4912,9 +5116,13 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ 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 */,
+ 1E5AD0491F1F773E0029B8AF /* SDLModuleType.m in Sources */,
DA9F7E841DCC047200ACAE48 /* SDLWayPointType.m in Sources */,
5D61FC561A84238C00846EE7 /* SDLButtonName.m in Sources */,
5D61FCC21A84238C00846EE7 /* SDLHMILevel.m in Sources */,
@@ -4954,6 +5162,7 @@
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 */,
@@ -4961,11 +5170,13 @@
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 */,
@@ -4975,9 +5186,11 @@
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 */,
DA9F7E741DCC004C00ACAE48 /* SDLGetWayPointsResponse.m in Sources */,
@@ -5005,6 +5218,7 @@
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 */,
@@ -5054,6 +5268,7 @@
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 */,
5D61FD281A84238C00846EE7 /* SDLPerformAudioPassThruResponse.m in Sources */,
5D61FDCE1A84238C00846EE7 /* SDLTimerMode.m in Sources */,
@@ -5110,12 +5325,14 @@
5D61FC321A84238C00846EE7 /* SDLAddSubMenu.m in Sources */,
5D61FDF61A84238C00846EE7 /* SDLV1ProtocolHeader.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 */,
+ 1E5AD0651F207DD50029B8AF /* SDLTemperature.m in Sources */,
DA9F7E901DCC04C000ACAE48 /* SDLUnsubscribeWayPointsResponse.m in Sources */,
5DE372A21ACB2ED300849FAA /* SDLHMICapabilities.m in Sources */,
5D61FDD41A84238C00846EE7 /* SDLTouchEvent.m in Sources */,
@@ -5140,6 +5357,7 @@
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 */,
@@ -5165,10 +5383,12 @@
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 */,
@@ -5187,6 +5407,7 @@
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 */,
@@ -5204,11 +5425,13 @@
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 */,
@@ -5232,6 +5455,7 @@
5D61FD081A84238C00846EE7 /* SDLOnCommand.m in Sources */,
5D53C46E1B7A99B9003526EA /* SDLStreamingMediaManager.m in Sources */,
5D61FD6A1A84238C00846EE7 /* SDLRPCMessage.m in Sources */,
+ 1E5AD0391F1F4E390029B8AF /* SDLClimateControlCapabilities.m in Sources */,
5D61FDA21A84238C00846EE7 /* SDLSoftButtonCapabilities.m in Sources */,
5D8204321BD001C700D0A41B /* SDLArtwork.m in Sources */,
5D61FC2C1A84238C00846EE7 /* SDLAbstractTransport.m in Sources */,
@@ -5253,6 +5477,7 @@
5D61FD621A84238C00846EE7 /* SDLRequestType.m in Sources */,
5D61FCBA1A84238C00846EE7 /* SDLGlobalProperty.m in Sources */,
5D61FD4F1A84238C00846EE7 /* SDLProtocolReceivedMessageRouter.m in Sources */,
+ 1E5AD0451F1F5A1F0029B8AF /* SDLRadioControlCapabilities.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -5274,6 +5499,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 */,
@@ -5291,8 +5517,10 @@
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 */,
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 */,
@@ -5310,6 +5538,7 @@
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 */,
@@ -5321,12 +5550,14 @@
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 */,
162E83531A9BDE8B00906325 /* SDLDiagnosticMessageResponseSpec.m in Sources */,
@@ -5341,12 +5572,14 @@
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 */,
162E83421A9BDE8B00906325 /* SDLSubscribeVehicleDataSpec.m in Sources */,
@@ -5355,6 +5588,7 @@
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 */,
@@ -5416,6 +5650,7 @@
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 */,
@@ -5445,6 +5680,7 @@
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 */,
@@ -5453,8 +5689,10 @@
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 */,
+ 1EE8C4401F348D3200FDC2CF /* SDLClimateControlCapabilitiesSpec.m in Sources */,
162E838F1A9BDE8B00906325 /* SDLTextFieldSpec.m in Sources */,
162E82CA1A9BDE8A00906325 /* SDLAmbientLightStatusSpec.m in Sources */,
162E83091A9BDE8B00906325 /* SDLVehicleDataStatusSpec.m in Sources */,
@@ -5471,9 +5709,11 @@
162E83031A9BDE8B00906325 /* SDLTriggerSource.m in Sources */,
162E82D61A9BDE8A00906325 /* SDLComponentVolumeStatusSpec.m in Sources */,
162E835C1A9BDE8B00906325 /* SDLPutFileResponseSpec.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 */,
@@ -5482,6 +5722,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 */,
@@ -5529,6 +5770,7 @@
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 */,
@@ -5553,6 +5795,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 */,
diff --git a/SmartDeviceLink.podspec b/SmartDeviceLink.podspec
index 796fccca2..9ff94545b 100644
--- a/SmartDeviceLink.podspec
+++ b/SmartDeviceLink.podspec
@@ -28,8 +28,10 @@ ss.public_header_files = [
'SmartDeviceLink/SDLAirbagStatus.h',
'SmartDeviceLink/SDLAlert.h',
'SmartDeviceLink/SDLAlertManeuver.h',
+'SmartDeviceLink/SDLButtonPress.h',
'SmartDeviceLink/SDLAlertManeuverResponse.h',
'SmartDeviceLink/SDLAlertResponse.h',
+'SmartDeviceLink/SDLButtonPressResponse.h',
'SmartDeviceLink/SDLAmbientLightStatus.h',
'SmartDeviceLink/SDLAppHMIType.h',
'SmartDeviceLink/SDLAppInfo.h',
@@ -50,6 +52,8 @@ ss.public_header_files = [
'SmartDeviceLink/SDLChangeRegistrationResponse.h',
'SmartDeviceLink/SDLCharacterSet.h',
'SmartDeviceLink/SDLChoice.h',
+'SmartDeviceLink/SDLClimateControlCapabilities.h',
+'SmartDeviceLink/SDLClimateControlData.h',
'SmartDeviceLink/SDLClusterModeStatus.h',
'SmartDeviceLink/SDLCompassDirection.h',
'SmartDeviceLink/SDLComponentVolumeStatus.h',
@@ -57,6 +61,7 @@ ss.public_header_files = [
'SmartDeviceLink/SDLCreateInteractionChoiceSet.h',
'SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h',
'SmartDeviceLink/SDLDateTime.h',
+'SmartDeviceLink/SDLDefrostZone.h',
'SmartDeviceLink/SDLDeleteCommand.h',
'SmartDeviceLink/SDLDeleteCommandResponse.h',
'SmartDeviceLink/SDLDeleteFile.h',
@@ -95,7 +100,9 @@ ss.public_header_files = [
'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',
@@ -152,6 +159,8 @@ ss.public_header_files = [
'SmartDeviceLink/SDLMenuParams.h',
'SmartDeviceLink/SDLMetadataTags.h',
'SmartDeviceLink/SDLMetadataType.h',
+'SmartDeviceLink/SDLModuleData.h',
+'SmartDeviceLink/SDLModuleType.h',
'SmartDeviceLink/SDLMyKey.h',
'SmartDeviceLink/SDLNavigationCapability.h',
'SmartDeviceLink/SDLNotificationConstants.h',
@@ -164,6 +173,7 @@ ss.public_header_files = [
'SmartDeviceLink/SDLOnDriverDistraction.h',
'SmartDeviceLink/SDLOnEncodedSyncPData.h',
'SmartDeviceLink/SDLOnHashChange.h',
+'SmartDeviceLink/SDLOnInteriorVehicleData.h',
'SmartDeviceLink/SDLOnHMIStatus.h',
'SmartDeviceLink/SDLOnKeyboardInput.h',
'SmartDeviceLink/SDLOnLanguageChange.h',
@@ -202,16 +212,22 @@ ss.public_header_files = [
'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',
@@ -234,7 +250,9 @@ ss.public_header_files = [
'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',
@@ -268,6 +286,8 @@ ss.public_header_files = [
'SmartDeviceLink/SDLSystemCapabilityType.h',
'SmartDeviceLink/SDLSystemContext.h',
'SmartDeviceLink/SDLTBTState.h',
+'SmartDeviceLink/SDLTemperature.h',
+'SmartDeviceLink/SDLTemperatureUnit.h',
'SmartDeviceLink/SDLTCPTransport.h',
'SmartDeviceLink/SDLTextAlignment.h',
'SmartDeviceLink/SDLTextField.h',
@@ -303,6 +323,7 @@ ss.public_header_files = [
'SmartDeviceLink/SDLVehicleDataResultCode.h',
'SmartDeviceLink/SDLVehicleDataStatus.h',
'SmartDeviceLink/SDLVehicleDataType.h',
+'SmartDeviceLink/SDLVentilationMode.h',
'SmartDeviceLink/SDLVehicleType.h',
'SmartDeviceLink/SDLVideoStreamingCapability.h',
'SmartDeviceLink/SDLVideoStreamingCodec.h',
diff --git a/SmartDeviceLink/SDLAbstractProtocol.h b/SmartDeviceLink/SDLAbstractProtocol.h
index 9c15260fe..e629e302a 100644
--- a/SmartDeviceLink/SDLAbstractProtocol.h
+++ b/SmartDeviceLink/SDLAbstractProtocol.h
@@ -20,26 +20,16 @@ NS_ASSUME_NONNULL_BEGIN
@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:(nullable 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:(nullable NSData *)payload completionHandler:(void (^)(BOOL success, NSError *error))completionHandler;
-
-- (void)sendEndSessionWithType:(SDLServiceType)serviceType __deprecated_msg(("Use endServiceWithType: instead"));
- (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;
diff --git a/SmartDeviceLink/SDLAbstractProtocol.m b/SmartDeviceLink/SDLAbstractProtocol.m
index c38b00902..fa3502799 100644
--- a/SmartDeviceLink/SDLAbstractProtocol.m
+++ b/SmartDeviceLink/SDLAbstractProtocol.m
@@ -17,30 +17,14 @@ NS_ASSUME_NONNULL_BEGIN
}
// Implement in subclasses.
-- (void)sendStartSessionWithType:(SDLServiceType)serviceType {
- [self doesNotRecognizeSelector:_cmd];
-}
-
-- (void)startServiceWithType:(SDLServiceType)serviceType {
- [self doesNotRecognizeSelector:_cmd];
-}
-
- (void)startServiceWithType:(SDLServiceType)serviceType payload:(nullable NSData *)payload {
[self doesNotRecognizeSelector:_cmd];
}
-- (void)startSecureServiceWithType:(SDLServiceType)serviceType completionHandler:(void (^)(BOOL, NSError *))completionHandler {
- [self doesNotRecognizeSelector:_cmd];
-}
-
- (void)startSecureServiceWithType:(SDLServiceType)serviceType payload:(nullable NSData *)payload completionHandler:(void (^)(BOOL, NSError *))completionHandler {
[self doesNotRecognizeSelector:_cmd];
}
-- (void)sendEndSessionWithType:(SDLServiceType)serviceType {
- [self doesNotRecognizeSelector:_cmd];
-}
-
- (void)endServiceWithType:(SDLServiceType)serviceType {
[self doesNotRecognizeSelector:_cmd];
}
@@ -54,14 +38,6 @@ NS_ASSUME_NONNULL_BEGIN
return NO;
}
-- (void)sendRPCRequest:(SDLRPCRequest *)rpcRequest {
- [self doesNotRecognizeSelector:_cmd];
-}
-
-- (void)sendHeartbeat {
- [self doesNotRecognizeSelector:_cmd];
-}
-
- (void)handleBytesFromTransport:(NSData *)receivedData {
[self doesNotRecognizeSelector:_cmd];
}
@@ -70,10 +46,6 @@ NS_ASSUME_NONNULL_BEGIN
[self doesNotRecognizeSelector:_cmd];
}
-- (void)sendRawDataStream:(NSInputStream *)inputStream withServiceType:(SDLServiceType)serviceType {
- [self doesNotRecognizeSelector:_cmd];
-}
-
- (void)sendEncryptedRawData:(NSData *)data onService:(SDLServiceType)serviceType {
[self doesNotRecognizeSelector:_cmd];
}
diff --git a/SmartDeviceLink/SDLAppHMIType.h b/SmartDeviceLink/SDLAppHMIType.h
index 2c02fe498..021f324e3 100644
--- a/SmartDeviceLink/SDLAppHMIType.h
+++ b/SmartDeviceLink/SDLAppHMIType.h
@@ -62,3 +62,7 @@ extern SDLAppHMIType const SDLAppHMITypeTesting;
* @abstract System App
*/
extern SDLAppHMIType const SDLAppHMITypeSystem;
+
+/**
+ * @abstract Remote control */
+extern SDLAppHMIType const SDLAppHMITypeRemoteControl;
diff --git a/SmartDeviceLink/SDLAppHMIType.m b/SmartDeviceLink/SDLAppHMIType.m
index 5ce899cf5..070ad089b 100644
--- a/SmartDeviceLink/SDLAppHMIType.m
+++ b/SmartDeviceLink/SDLAppHMIType.m
@@ -15,3 +15,4 @@ 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/SDLButtonName.h b/SmartDeviceLink/SDLButtonName.h
index c86bd4dba..0956c80e3 100644
--- a/SmartDeviceLink/SDLButtonName.h
+++ b/SmartDeviceLink/SDLButtonName.h
@@ -98,6 +98,116 @@ extern SDLButtonName const SDLButtonNamePreset8;
*/
extern SDLButtonName const SDLButtonNamePreset9;
+/**
+ * @abstract Represents the Custom button.
+ *
+ */
extern SDLButtonName const SDLButtonNameCustomButton;
+/**
+ * @abstract Represents the SEARCH button.
+ *
+ */
extern SDLButtonName const SDLButtonNameSearch;
+
+#pragma mark - Climate Buttons
+
+/**
+ * @abstract Represents AC max button *
+ */
+extern SDLButtonName const SDLButtonNameACMax;
+
+/**
+ * @abstract Represents AC button *
+ */
+extern SDLButtonName const SDLButtonNameAC;
+
+/**
+ * @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 23ac32eb9..8283fa5a2 100644
--- a/SmartDeviceLink/SDLButtonName.m
+++ b/SmartDeviceLink/SDLButtonName.m
@@ -21,3 +21,21 @@ 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/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/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<SDLBool> *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<SDLBool> *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<SDLBool> *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<SDLBool> *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<SDLBool> *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<SDLBool> *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<SDLBool> *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<SDLBool> *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<SDLDefrostZone > *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<SDLBool> *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<SDLVentilationMode> *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<SDLBool> *)fanSpeedAvailable {
+ [store sdl_setObject:fanSpeedAvailable forName:SDLNameFanSpeedAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)fanSpeedAvailable {
+ return [store sdl_objectForName:SDLNameFanSpeedAvailable];
+}
+
+- (void)setDesiredTemperatureAvailable:(nullable NSNumber<SDLBool> *)desiredTemperatureAvailable {
+ [store sdl_setObject:desiredTemperatureAvailable forName:SDLNameDesiredTemperatureAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)desiredTemperatureAvailable {
+ return [store sdl_objectForName:SDLNameDesiredTemperatureAvailable];
+}
+
+- (void)setAcEnableAvailable:(nullable NSNumber<SDLBool> *)acEnableAvailable {
+ [store sdl_setObject:acEnableAvailable forName:SDLNameACEnableAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)acEnableAvailable {
+ return [store sdl_objectForName:SDLNameACEnableAvailable];
+}
+
+- (void)setAcMaxEnableAvailable:(nullable NSNumber<SDLBool> *)acMaxEnableAvailable {
+ [store sdl_setObject:acMaxEnableAvailable forName:SDLNameACMaxEnableAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)acMaxEnableAvailable {
+ return [store sdl_objectForName:SDLNameACMaxEnableAvailable];
+}
+
+- (void)setCirculateAirEnableAvailable:(nullable NSNumber<SDLBool> *)circulateAirEnableAvailable {
+ [store sdl_setObject:circulateAirEnableAvailable forName:SDLNameCirculateAirEnableAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)circulateAirEnableAvailable {
+ return [store sdl_objectForName:SDLNameCirculateAirEnableAvailable];
+}
+
+- (void)setAutoModeEnableAvailable:(nullable NSNumber<SDLBool> *)autoModeEnableAvailable {
+ [store sdl_setObject:autoModeEnableAvailable forName:SDLNameAutoModeEnableAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)autoModeEnableAvailable {
+ return [store sdl_objectForName:SDLNameAutoModeEnableAvailable];
+}
+
+- (void)setDualModeEnableAvailable:(nullable NSNumber<SDLBool> *)dualModeEnableAvailable {
+ [store sdl_setObject:dualModeEnableAvailable forName:SDLNameDualModeEnableAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)dualModeEnableAvailable {
+ return [store sdl_objectForName:SDLNameDualModeEnableAvailable];
+}
+
+- (void)setDefrostZoneAvailable:(nullable NSNumber<SDLBool> *)defrostZoneAvailable {
+ [store sdl_setObject:defrostZoneAvailable forName:SDLNameDefrostZoneAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)defrostZoneAvailable {
+ return [store sdl_objectForName:SDLNameDefrostZoneAvailable];
+}
+
+- (void)setDefrostZone:(nullable NSArray <SDLDefrostZone>*)defrostZone {
+ [store sdl_setObject:defrostZone forName:SDLNameDefrostZone];
+}
+
+- (nullable NSArray<SDLDefrostZone> *)defrostZone {
+ return [store sdl_objectForName:SDLNameDefrostZone];
+}
+
+- (void)setVentilationModeAvailable:(nullable NSNumber<SDLBool> *)ventilationModeAvailable {
+ [store sdl_setObject:ventilationModeAvailable forName:SDLNameVentilationModeAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)ventilationModeAvailable {
+ return [store sdl_objectForName:SDLNameVentilationModeAvailable];
+}
+
+- (void)setVentilationMode:(nullable NSArray<SDLVentilationMode> *)ventilationMode {
+ [store sdl_setObject:ventilationMode forName:SDLNameVentilationMode];
+}
+
+- (nullable NSArray<SDLVentilationMode> *)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<SDLInt> *)fanSpeed desiredTemperature:(nullable SDLTemperature *)desiredTemperature acEnable:(nullable NSNumber<SDLBool> *)acEnable circulateAirEnable:(nullable NSNumber<SDLBool> *)circulateAirEnable autoModeEnable:(nullable NSNumber<SDLBool> *)autoModeEnable defrostZone:(nullable SDLDefrostZone)defrostZone dualModeEnable:(nullable NSNumber<SDLBool> *)dualModeEnable acMaxEnable:(nullable NSNumber<SDLBool> *)acMaxEnable ventilationMode:(nullable SDLVentilationMode)ventilationMode;
+
+/**
+ * @abstract Speed of Fan in integer
+ *
+ * Optional, MinValue- 0 MaxValue= 100
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLInt> *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<SDLBool> *acEnable;
+
+/**
+ * @abstract Represents if circulation of air is enabled.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *circulateAirEnable;
+
+/**
+ * @abstract Represents if auto mode is enabled.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *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<SDLBool> *dualModeEnable;
+
+/**
+ * @abstract Represents if ac max is enabled.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *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<SDLInt> *)fanSpeed desiredTemperature:(nullable SDLTemperature *)desiredTemperature acEnable:(nullable NSNumber<SDLBool> *)acEnable circulateAirEnable:(nullable NSNumber<SDLBool> *)circulateAirEnable autoModeEnable:(nullable NSNumber<SDLBool> *)autoModeEnable defrostZone:(nullable SDLDefrostZone)defrostZone dualModeEnable:(nullable NSNumber<SDLBool> *)dualModeEnable acMaxEnable:(nullable NSNumber<SDLBool> *)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<SDLInt> *)fanSpeed {
+ [store sdl_setObject:fanSpeed forName:SDLNameFanSpeed];
+}
+
+- (nullable NSNumber<SDLInt> *)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<SDLBool> *)acEnable {
+ [store sdl_setObject:acEnable forName:SDLNameACEnable];
+}
+
+- (nullable NSNumber<SDLBool> *)acEnable {
+ return [store sdl_objectForName:SDLNameACEnable];
+}
+
+- (void)setCirculateAirEnable:(nullable NSNumber<SDLBool> *)circulateAirEnable {
+ [store sdl_setObject:circulateAirEnable forName:SDLNameCirculateAirEnable];
+}
+
+- (nullable NSNumber<SDLBool> *)circulateAirEnable {
+ return [store sdl_objectForName:SDLNameCirculateAirEnable];
+}
+
+- (void)setAutoModeEnable:(nullable NSNumber<SDLBool> *)autoModeEnable {
+ [store sdl_setObject:autoModeEnable forName:SDLNameAutoModeEnable];
+}
+
+- (nullable NSNumber<SDLBool> *)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<SDLBool> *)dualModeEnable {
+ [store sdl_setObject:dualModeEnable forName:SDLNameDualModeEnable];
+}
+
+- (nullable NSNumber<SDLBool> *)dualModeEnable {
+ return [store sdl_objectForName:SDLNameDualModeEnable];
+}
+
+- (void)setAcMaxEnable:(nullable NSNumber<SDLBool> *)acMaxEnable {
+ [store sdl_setObject:acMaxEnable forName:SDLNameACMaxEnable];
+}
+
+- (nullable NSNumber<SDLBool> *)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/SDLConfiguration.h b/SmartDeviceLink/SDLConfiguration.h
index 52706376b..c5a758b59 100644
--- a/SmartDeviceLink/SDLConfiguration.h
+++ b/SmartDeviceLink/SDLConfiguration.h
@@ -38,42 +38,6 @@ NS_ASSUME_NONNULL_BEGIN
@property (copy, nonatomic, readonly) SDLStreamingMediaConfiguration *streamingMediaConfig;
/**
- Create a new configuration to be passed into SDLManager with a custom lifecycle, lock screen, and a default logging configuration.
-
- @param lifecycleConfiguration The lifecycle configuration to be used.
- @return The configuration
- */
-- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfiguration __deprecated_msg(("Use initWithLifecycle:lockScreen:logging: instead"));
-
-/**
- Create a new configuration to be passed into SDLManager with a custom lifecycle, lock screen, and a default logging configuration.
-
- @param lifecycleConfiguration The lifecycle configuration to be used.
- @return The configuration
- */
-+ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfiguration __deprecated_msg(("Use configurationWithLifecycle:lockScreen:logging: instead"));
-
-/**
- * Create a new configuration to be passed into SDLManager with a custom lifecycle, lock screen, and a default logging configuration.
- *
- * @param lifecycleConfig The lifecycle configuration to be used.
- * @param lockScreenConfig The lockscreen configuration to be used, or `enabledConfiguration` if nil.
- *
- * @return The configuration
- */
-- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig __deprecated_msg(("Use initWithLifecycle:lockScreen:logging: instead"));
-
-/**
- * Create a new configuration to be passed into SDLManager with a custom lifecycle, lock screen, and a default logging configuration.
- *
- * @param lifecycleConfig The lifecycle configuration to be used.
- * @param lockScreenConfig The lockscreen configuration to be used, or `enabledConfiguration` if nil.
- *
- * @return The configuration
- */
-+ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig __deprecated_msg(("Use configurationWithLifecycle:lockScreen:logging: instead"));
-
-/**
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.
diff --git a/SmartDeviceLink/SDLConfiguration.m b/SmartDeviceLink/SDLConfiguration.m
index ebb7477d9..bff1e8aad 100644
--- a/SmartDeviceLink/SDLConfiguration.m
+++ b/SmartDeviceLink/SDLConfiguration.m
@@ -59,12 +59,15 @@ NS_ASSUME_NONNULL_BEGIN
_lifecycleConfig = lifecycleConfig;
_lockScreenConfig = lockScreenConfig ?: [SDLLockScreenConfiguration enabledConfiguration];
_loggingConfig = logConfig ?: [SDLLogConfiguration defaultConfiguration];
+ _streamingMediaConfig = streamingMediaConfig;
if (_streamingMediaConfig != nil) {
- 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");
+ // 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 {
- 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");
+ // 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;
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/SDLFunctionID.m b/SmartDeviceLink/SDLFunctionID.m
index c18cdc2cb..14742e907 100644
--- a/SmartDeviceLink/SDLFunctionID.m
+++ b/SmartDeviceLink/SDLFunctionID.m
@@ -71,6 +71,9 @@ NS_ASSUME_NONNULL_BEGIN
@38: SDLNameSystemRequest,
@39: SDLNameSendLocation,
@40: SDLNameDialNumber,
+ @41: SDLNameButtonPress,
+ @43: SDLNameGetInteriorVehicleData,
+ @44: SDLNameSetInteriorVehicleData,
@45: SDLNameGetWayPoints,
@46: SDLNameSubscribeWayPoints,
@47: SDLNameUnsubscribeWayPoints,
@@ -91,13 +94,13 @@ NS_ASSUME_NONNULL_BEGIN
@32780: SDLNameOnTouchEvent,
@32781: SDLNameOnSystemRequest,
@32782: SDLNameOnHashChange,
+ @32783: SDLNameOnInteriorVehicleData,
@32784: SDLNameOnWayPointChange,
@65536: SDLNameEncodedSyncPData,
@65537: SDLNameSyncPData,
@98304: SDLNameOnEncodedSyncPData,
@98305: SDLNameOnSyncPData
};
-
return self;
}
@@ -105,12 +108,10 @@ NS_ASSUME_NONNULL_BEGIN
return self.functionIds[@(functionID)];
}
-
- (nullable NSNumber<SDLInt> *)functionIdForName:(SDLName)functionName {
return [[self.functionIds allKeysForObject:functionName] firstObject];
}
-
@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<SDLBool> *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<SDLBool> *)subscribe {
+ [parameters sdl_setObject:subscribe forName:SDLNameSubscribe];
+}
+
+- (nullable NSNumber<SDLBool> *)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<SDLBool> *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<SDLBool> *)isSubscribed {
+ [parameters sdl_setObject:isSubscribed forName:SDLNameIsSubscribed];
+}
+
+- (nullable NSNumber<SDLBool> *)isSubscribed {
+ return [parameters sdl_objectForName:SDLNameIsSubscribed];
+}
+
+@end
+
+NS_ASSUME_NONNULL_END
+
diff --git a/SmartDeviceLink/SDLH264VideoEncoder.m b/SmartDeviceLink/SDLH264VideoEncoder.m
index 26bb813a7..7929c3b11 100644
--- a/SmartDeviceLink/SDLH264VideoEncoder.m
+++ b/SmartDeviceLink/SDLH264VideoEncoder.m
@@ -38,7 +38,8 @@ static NSDictionary<NSString *, id>* _defaultVideoEncoderSettings;
_defaultVideoEncoderSettings = @{
(__bridge NSString *)kVTCompressionPropertyKey_ProfileLevel: (__bridge NSString *)kVTProfileLevel_H264_Baseline_AutoLevel,
- (__bridge NSString *)kVTCompressionPropertyKey_RealTime: @YES
+ (__bridge NSString *)kVTCompressionPropertyKey_RealTime: @YES,
+ (__bridge NSString *)kVTCompressionPropertyKey_ExpectedFrameRate: @30,
};
}
@@ -138,7 +139,12 @@ static NSDictionary<NSString *, id>* _defaultVideoEncoderSettings;
- (BOOL)encodeFrame:(CVImageBufferRef)imageBuffer presentationTimestamp:(CMTime)presentationTimestamp {
if (!CMTIME_IS_VALID(presentationTimestamp)) {
- presentationTimestamp = CMTimeMake(self.currentFrameNumber, 30);
+ 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++;
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 1100d4990..aa395f923 100644
--- a/SmartDeviceLink/SDLMyKey.h
+++ b/SmartDeviceLink/SDLMyKey.h
@@ -2,7 +2,6 @@
//
#import "SDLRPCMessage.h"
-
#import "SDLVehicleDataStatus.h"
NS_ASSUME_NONNULL_BEGIN
diff --git a/SmartDeviceLink/SDLNames.h b/SmartDeviceLink/SDLNames.h
index 2368cac31..a1790afa0 100644
--- a/SmartDeviceLink/SDLNames.h
+++ b/SmartDeviceLink/SDLNames.h
@@ -8,6 +8,10 @@ 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;
@@ -39,7 +43,12 @@ 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;
@@ -49,6 +58,7 @@ 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;
@@ -58,6 +68,10 @@ 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;
@@ -67,17 +81,23 @@ 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;
@@ -104,6 +124,8 @@ 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;
@@ -121,16 +143,21 @@ 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;
@@ -143,6 +170,8 @@ 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;
@@ -177,6 +206,7 @@ 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;
@@ -238,6 +268,9 @@ 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;
@@ -268,6 +301,7 @@ 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;
@@ -305,6 +339,7 @@ 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;
@@ -321,13 +356,25 @@ 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;
@@ -347,6 +394,7 @@ 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;
@@ -366,12 +414,17 @@ 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;
@@ -385,6 +438,7 @@ 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;
@@ -410,6 +464,7 @@ 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;
@@ -426,6 +481,7 @@ 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;
@@ -435,6 +491,7 @@ 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;
@@ -460,6 +517,8 @@ 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;
diff --git a/SmartDeviceLink/SDLNames.m b/SmartDeviceLink/SDLNames.m
index 5b3e6cf90..a3cd5c758 100644
--- a/SmartDeviceLink/SDLNames.m
+++ b/SmartDeviceLink/SDLNames.m
@@ -6,6 +6,10 @@
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";
@@ -37,7 +41,12 @@ 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";
@@ -47,6 +56,7 @@ 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";
@@ -56,6 +66,10 @@ 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";
@@ -65,17 +79,23 @@ 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";
@@ -101,6 +121,8 @@ 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";
@@ -118,16 +140,21 @@ 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";
@@ -139,6 +166,8 @@ 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";
@@ -175,6 +204,7 @@ 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";
@@ -235,6 +265,9 @@ 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";
@@ -262,6 +295,7 @@ 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";
@@ -299,6 +333,7 @@ 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";
@@ -315,17 +350,30 @@ 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";
@@ -341,6 +389,7 @@ 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";
@@ -366,6 +415,10 @@ 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";
@@ -379,6 +432,7 @@ 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";
@@ -386,7 +440,7 @@ SDLName const SDLNameSteeringWheelAngle = @"steeringWheelAngle";
SDLName const SDLNameStereoAudioOutputMuted = @"stereoAudioOutputMuted";
SDLName const SDLNameSubAdministrativeArea = @"subAdministrativeArea";
SDLName const SDLNameSubLocality = @"subLocality";
-SDLName const SDLNameSubscribe = @"Subscribe";
+SDLName const SDLNameSubscribe = @"subscribe";
SDLName const SDLNameSubscribeButton = @"SubscribeButton";
SDLName const SDLNameSubscribeVehicleData = @"SubscribeVehicleData";
SDLName const SDLNameSubscribeWayPoints = @"SubscribeWayPoints";
@@ -405,6 +459,7 @@ 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";
@@ -421,6 +476,7 @@ 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";
@@ -430,6 +486,7 @@ 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";
@@ -455,6 +512,8 @@ SDLName const SDLNameVideoCodec = @"videoCodec";
SDLName const SDLNameVideoProtocol = @"videoProtocol";
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";
diff --git a/SmartDeviceLink/SDLNotificationConstants.h b/SmartDeviceLink/SDLNotificationConstants.h
index 3d0ac5b10..0703e4000 100644
--- a/SmartDeviceLink/SDLNotificationConstants.h
+++ b/SmartDeviceLink/SDLNotificationConstants.h
@@ -50,19 +50,19 @@ typedef void (^SDLResponseHandler)(__kindof SDLRPCRequest *__nullable request, _
/**
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);
@@ -92,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;
@@ -104,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;
@@ -120,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;
@@ -147,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 761340dfd..48189170e 100644
--- a/SmartDeviceLink/SDLNotificationConstants.m
+++ b/SmartDeviceLink/SDLNotificationConstants.m
@@ -25,6 +25,7 @@ SDLNotificationName const SDLDidReceiveAddCommandResponse = @"com.sdl.response.a
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";
@@ -37,6 +38,7 @@ SDLNotificationName const SDLDidReceiveEncodedSyncPDataResponse = @"com.sdl.resp
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";
@@ -53,6 +55,7 @@ SDLNotificationName const SDLDidReceiveSendLocationResponse = @"com.sdl.response
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";
@@ -77,6 +80,7 @@ SDLNotificationName const SDLDidReceiveButtonEventNotification = @"com.sdl.notif
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";
@@ -96,6 +100,7 @@ SDLNotificationName const SDLDidReceiveWaypointNotification = @"com.sdl.notifica
SDLDidReceiveAddSubMenuResponse,
SDLDidReceiveAlertResponse,
SDLDidReceiveAlertManeuverResponse,
+ SDLDidReceiveButtonPressResponse,
SDLDidReceiveChangeRegistrationResponse,
SDLDidReceiveCreateInteractionChoiceSetResponse,
SDLDidReceiveDeleteCommandResponse,
@@ -108,6 +113,7 @@ SDLNotificationName const SDLDidReceiveWaypointNotification = @"com.sdl.notifica
SDLDidReceiveEndAudioPassThruResponse,
SDLDidReceiveGenericResponse,
SDLDidReceiveGetDTCsResponse,
+ SDLDidReceiveGetInteriorVehicleDataResponse,
SDLDidReceiveGetSystemCapabilitiesResponse,
SDLDidReceiveGetVehicleDataResponse,
SDLDidReceiveGetWaypointsResponse,
@@ -124,6 +130,7 @@ SDLNotificationName const SDLDidReceiveWaypointNotification = @"com.sdl.notifica
SDLDidReceiveSetAppIconResponse,
SDLDidReceiveSetDisplayLayoutResponse,
SDLDidReceiveSetGlobalPropertiesResponse,
+ SDLDidReceiveSetInteriorVehicleDataResponse,
SDLDidReceiveSetMediaClockTimerResponse,
SDLDidReceiveShowConstantTBTResponse,
SDLDidReceiveShowResponse,
diff --git a/SmartDeviceLink/SDLNotificationDispatcher.m b/SmartDeviceLink/SDLNotificationDispatcher.m
index 3da6e790a..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 @@ NS_ASSUME_NONNULL_BEGIN
if (infoObject != nil) {
userInfo = @{SDLNotificationUserInfoObject: infoObject};
}
-
+
dispatch_async(dispatch_get_main_queue(), ^{
[[NSNotificationCenter defaultCenter] postNotificationName:name object:self userInfo:userInfo];
});
@@ -44,7 +43,6 @@ NS_ASSUME_NONNULL_BEGIN
});
}
-
#pragma mark - SDLProxyListener Delegate Methods
- (void)onProxyOpened {
@@ -66,7 +64,6 @@ NS_ASSUME_NONNULL_BEGIN
[self postRPCNotificationNotification:SDLDidChangeDriverDistractionStateNotification notification:notification];
}
-
#pragma mark Optional Methods
- (void)onError:(NSException *)e {
@@ -94,6 +91,10 @@ NS_ASSUME_NONNULL_BEGIN
[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 @@ NS_ASSUME_NONNULL_BEGIN
[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 @@ NS_ASSUME_NONNULL_BEGIN
[self postRPCResponseNotification:SDLDidReceiveSetGlobalPropertiesResponse response:response];
}
+- (void)onSetInteriorVehicleDataResponse:(SDLSetInteriorVehicleDataResponse *)response{
+ [self postRPCResponseNotification:SDLDidReceiveSetInteriorVehicleDataResponse response:response];
+}
+
- (void)onSetMediaClockTimerResponse:(SDLSetMediaClockTimerResponse *)response {
[self postRPCResponseNotification:SDLDidReceiveSetMediaClockTimerResponse response:response];
}
@@ -290,6 +299,10 @@ NS_ASSUME_NONNULL_BEGIN
[self postRPCNotificationNotification:SDLDidReceiveNewHashNotification notification:notification];
}
+- (void)onOnInteriorVehicleData:(SDLOnInteriorVehicleData *)notification {
+ [self postRPCNotificationNotification:SDLDidReceiveInteriorVehicleDataNotification notification:notification];
+}
+
- (void)onOnKeyboardInput:(SDLOnKeyboardInput *)notification {
[self postRPCNotificationNotification:SDLDidReceiveKeyboardInputNotification notification:notification];
}
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/SDLProtocol.h b/SmartDeviceLink/SDLProtocol.h
index ea6df9667..a0a4d1ecd 100644
--- a/SmartDeviceLink/SDLProtocol.h
+++ b/SmartDeviceLink/SDLProtocol.h
@@ -17,18 +17,11 @@ extern NSString *const SDLProtocolSecurityErrorDomain;
@interface SDLProtocol : SDLAbstractProtocol <SDLProtocolListener>
// 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:(nullable 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:(nullable NSData *)payload completionHandler:(void (^)(BOOL success, NSError *error))completionHandler;
-
-- (void)sendEndSessionWithType:(SDLServiceType)serviceType __deprecated_msg(("Use endServiceWithType: instead"));
- (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;
diff --git a/SmartDeviceLink/SDLProtocol.m b/SmartDeviceLink/SDLProtocol.m
index 1adef65f0..186226414 100644
--- a/SmartDeviceLink/SDLProtocol.m
+++ b/SmartDeviceLink/SDLProtocol.m
@@ -82,27 +82,15 @@ NS_ASSUME_NONNULL_BEGIN
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:(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:(nullable NSData *)payload completionHandler:(void (^)(BOOL success, NSError *error))completionHandler {
[self sdl_initializeTLSEncryptionWithCompletionHandler:^(BOOL success, NSError *error) {
if (!success) {
@@ -177,10 +165,6 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark - End Service
-- (void)sendEndSessionWithType:(SDLServiceType)serviceType {
- [self endServiceWithType:serviceType];
-}
-
- (void)endServiceWithType:(SDLServiceType)serviceType {
SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:[SDLGlobals sharedGlobals].majorProtocolVersion];
header.frameType = SDLFrameTypeControl;
@@ -295,11 +279,6 @@ NS_ASSUME_NONNULL_BEGIN
return YES;
}
-// SDLRPCRequest in from app -> SDLProtocolMessage out to transport layer.
-- (void)sendRPCRequest:(SDLRPCRequest *)rpcRequest {
- [self sendRPC:rpcRequest];
-}
-
// Use for normal messages
- (void)sdl_sendDataToTransport:(NSData *)data onService:(NSInteger)priority {
[_prioritizedCollection addObject:data withPriority:priority];
@@ -461,19 +440,6 @@ NS_ASSUME_NONNULL_BEGIN
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
- }
}
}
@@ -484,13 +450,6 @@ NS_ASSUME_NONNULL_BEGIN
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
}
}
@@ -502,14 +461,7 @@ NS_ASSUME_NONNULL_BEGIN
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 {
@@ -519,14 +471,7 @@ NS_ASSUME_NONNULL_BEGIN
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 {
diff --git a/SmartDeviceLink/SDLProtocolHeader.h b/SmartDeviceLink/SDLProtocolHeader.h
index cfef757fe..e28539597 100644
--- a/SmartDeviceLink/SDLProtocolHeader.h
+++ b/SmartDeviceLink/SDLProtocolHeader.h
@@ -46,7 +46,6 @@ NS_ASSUME_NONNULL_BEGIN
@property (assign, nonatomic, readonly) UInt8 version;
@property (assign, nonatomic, readonly) NSUInteger size;
-@property (assign, nonatomic) BOOL compressed __deprecated_msg("This is a mirror for encrypted");
@property (assign, nonatomic) BOOL encrypted;
@property (assign, nonatomic) SDLFrameType frameType;
@property (assign, nonatomic) SDLServiceType serviceType;
diff --git a/SmartDeviceLink/SDLProtocolHeader.m b/SmartDeviceLink/SDLProtocolHeader.m
index 2c193fecb..afe93724d 100644
--- a/SmartDeviceLink/SDLProtocolHeader.m
+++ b/SmartDeviceLink/SDLProtocolHeader.m
@@ -22,14 +22,6 @@ NS_ASSUME_NONNULL_BEGIN
return self;
}
-- (BOOL)compressed {
- return _encrypted;
-}
-
-- (void)setCompressed:(BOOL)compressed {
- _encrypted = compressed;
-}
-
- (id)copyWithZone:(nullable NSZone *)zone {
[self doesNotRecognizeSelector:_cmd];
return 0;
diff --git a/SmartDeviceLink/SDLProtocolListener.h b/SmartDeviceLink/SDLProtocolListener.h
index 0657fc2c0..7888a9ee3 100644
--- a/SmartDeviceLink/SDLProtocolListener.h
+++ b/SmartDeviceLink/SDLProtocolListener.h
@@ -17,11 +17,6 @@ NS_ASSUME_NONNULL_BEGIN
- (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;
diff --git a/SmartDeviceLink/SDLProtocolMessage.h b/SmartDeviceLink/SDLProtocolMessage.h
index 893c6ee09..4028ec497 100644
--- a/SmartDeviceLink/SDLProtocolMessage.h
+++ b/SmartDeviceLink/SDLProtocolMessage.h
@@ -19,8 +19,6 @@ NS_ASSUME_NONNULL_BEGIN
- (NSString *)description;
- (nullable NSDictionary<NSString *, id> *)rpcDictionary; // Use for RPC type messages to obtain the data in a dictionary
-+ (UInt8)determineVersion:(NSData *)data __deprecated_msg(("Use SDLProtocolHeader determineVersion: instead"));
-
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLProtocolMessage.m b/SmartDeviceLink/SDLProtocolMessage.m
index b4a5fb5d9..66680e40e 100644
--- a/SmartDeviceLink/SDLProtocolMessage.m
+++ b/SmartDeviceLink/SDLProtocolMessage.m
@@ -49,10 +49,6 @@ NS_ASSUME_NONNULL_BEGIN
return dataOut;
}
-+ (UInt8)determineVersion:(NSData *)data {
- return [SDLProtocolHeader determineVersion:data];
-}
-
- (NSString *)description {
// Print the header data.
NSMutableString *description = [[NSMutableString alloc] init];
diff --git a/SmartDeviceLink/SDLProxy.h b/SmartDeviceLink/SDLProxy.h
index 80018677c..6beb28d8d 100644
--- a/SmartDeviceLink/SDLProxy.h
+++ b/SmartDeviceLink/SDLProxy.h
@@ -37,10 +37,8 @@ __deprecated_msg("Use SDLManager instead")
- (void)removeDelegate:(NSObject<SDLProxyListener> *)delegate;
- (void)sendRPC:(SDLRPCMessage *)message;
-- (void)sendRPCRequest:(SDLRPCMessage *)msg __deprecated_msg("use -sendRPC: instead");
- (void)handleRPCDictionary:(NSDictionary<NSString *, id> *)dictionary;
-- (void)handleRpcMessage:(NSDictionary *)msg __deprecated_msg("use -handleRPCDictionary: instead");
- (void)handleProtocolMessage:(SDLProtocolMessage *)msgData;
diff --git a/SmartDeviceLink/SDLProxy.m b/SmartDeviceLink/SDLProxy.m
index 16ed595a1..ef5eb9857 100644
--- a/SmartDeviceLink/SDLProxy.m
+++ b/SmartDeviceLink/SDLProxy.m
@@ -194,7 +194,8 @@ static float DefaultConnectionTimeout = 45.0;
- (void)onProtocolOpened {
_isConnected = YES;
SDLLogV(@"Proxy RPC protocol opened");
- [self.protocol startServiceWithType:SDLServiceTypeRPC];
+ // 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];
@@ -215,12 +216,12 @@ static float DefaultConnectionTimeout = 45.0;
[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", header.sessionID, header.serviceType);
+ SDLLogV(@"StartSession (response)\nSessionId: %d for serviceType %d", startServiceACK.header.sessionID, startServiceACK.header.serviceType);
- if (header.serviceType == SDLServiceTypeRPC) {
+ if (startServiceACK.header.serviceType == SDLServiceTypeRPC) {
[self invokeMethodOnDelegates:@selector(onProxyOpened) withObject:nil];
}
}
@@ -243,12 +244,6 @@ static float DefaultConnectionTimeout = 45.0;
}
}
-- (void)sendRPCRequest:(SDLRPCMessage *)msg {
- if ([msg isKindOfClass:SDLRPCRequest.class]) {
- [self sendRPC:msg];
- }
-}
-
- (void)handleProtocolMessage:(SDLProtocolMessage *)incomingMessage {
// Convert protocol message to dictionary
NSDictionary<NSString *, id> *rpcMessageAsDictionary = [incomingMessage rpcDictionary];
@@ -312,10 +307,6 @@ static float DefaultConnectionTimeout = 45.0;
}
}
-- (void)handleRpcMessage:(NSDictionary<NSString *, id> *)msg {
- [self handleRPCDictionary:msg];
-}
-
#pragma mark - RPC Handlers
diff --git a/SmartDeviceLink/SDLProxyListener.h b/SmartDeviceLink/SDLProxyListener.h
index 64c177579..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;
@@ -55,6 +58,7 @@
@class SDLSetAppIconResponse;
@class SDLSetDisplayLayoutResponse;
@class SDLSetGlobalPropertiesResponse;
+@class SDLSetInteriorVehicleDataResponse;
@class SDLSetMediaClockTimerResponse;
@class SDLShowConstantTBTResponse;
@class SDLShowResponse;
@@ -85,6 +89,7 @@ NS_ASSUME_NONNULL_BEGIN
- (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;
@@ -98,6 +103,7 @@ NS_ASSUME_NONNULL_BEGIN
- (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;
@@ -110,6 +116,7 @@ NS_ASSUME_NONNULL_BEGIN
- (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;
@@ -132,6 +139,7 @@ NS_ASSUME_NONNULL_BEGIN
- (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;
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<SDLInt> *)programType trafficProgramIdentification:(nullable NSNumber<SDLBool> *)trafficProgramIdentification trafficAnnouncementIdentification:(nullable NSNumber<SDLBool> *)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<SDLInt> *programType;
+
+/**
+ * @abstract Traffic Program Identification - Identifies a station that offers traffic
+ *
+ * optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *trafficProgramIdentification;
+
+/**
+ * @abstract Traffic Announcement Identification - Indicates an ongoing traffic announcement
+ *
+ * optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *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<SDLInt> *)programType trafficProgramIdentification:(nullable NSNumber<SDLBool> *)trafficProgramIdentification trafficAnnouncementIdentification:(nullable NSNumber<SDLBool> *)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<SDLInt> *)programType {
+ [store sdl_setObject:programType forName:SDLNameProgramType];
+}
+
+- (nullable NSNumber<SDLInt> *)programType {
+ return [store sdl_objectForName:SDLNameProgramType];
+}
+
+- (void)setTrafficProgramIdentification:(nullable NSNumber<SDLBool> *)trafficProgramIdentification {
+ [store sdl_setObject:trafficProgramIdentification forName:SDLNameTrafficProgramIdentification];
+}
+
+- (nullable NSNumber<SDLBool> *)trafficProgramIdentification {
+ return [store sdl_objectForName:SDLNameTrafficProgramIdentification];
+}
+
+- (void)setTrafficAnnouncementIdentification:(nullable NSNumber<SDLBool> *)trafficAnnouncementIdentification {
+ [store sdl_setObject:trafficAnnouncementIdentification forName:SDLNameTrafficAnnouncementIdentification];
+}
+
+- (nullable NSNumber<SDLBool> *)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/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<SDLBool> *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<SDLBool> *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<SDLBool> *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<SDLBool> *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<SDLBool> *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<SDLBool> *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<SDLBool> *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<SDLBool> *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<SDLBool> *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<SDLBool> *)radioEnableAvailable {
+ [store sdl_setObject:radioEnableAvailable forName:SDLNameRadioEnableAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)radioEnableAvailable {
+ return [store sdl_objectForName:SDLNameRadioEnableAvailable];
+}
+
+- (void)setRadioBandAvailable:(nullable NSNumber<SDLBool> *)radioBandAvailable {
+ [store sdl_setObject:radioBandAvailable forName:SDLNameRadioBandAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)radioBandAvailable {
+ return [store sdl_objectForName:SDLNameRadioBandAvailable];
+}
+
+- (void)setRadioFrequencyAvailable:(nullable NSNumber<SDLBool> *)radioFrequencyAvailable {
+ [store sdl_setObject:radioFrequencyAvailable forName:SDLNameRadioFrequencyAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)radioFrequencyAvailable {
+ return [store sdl_objectForName:SDLNameRadioFrequencyAvailable];
+}
+
+- (void)setHdChannelAvailable:(nullable NSNumber<SDLBool> *)hdChannelAvailable {
+ [store sdl_setObject:hdChannelAvailable forName:SDLNameHDChannelAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)hdChannelAvailable {
+ return [store sdl_objectForName:SDLNameHDChannelAvailable];
+}
+
+- (void)setRdsDataAvailable:(nullable NSNumber<SDLBool> *)rdsDataAvailable {
+ [store sdl_setObject:rdsDataAvailable forName:SDLNameRDSDataAvailable];
+
+}
+
+- (nullable NSNumber<SDLBool> *)rdsDataAvailable {
+ return [store sdl_objectForName:SDLNameRDSDataAvailable];
+}
+
+- (void)setAvailableHDsAvailable:(nullable NSNumber<SDLBool> *)availableHDsAvailable {
+ [store sdl_setObject:availableHDsAvailable forName:SDLNameAvailableHDsAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)availableHDsAvailable {
+ return [store sdl_objectForName:SDLNameAvailableHDsAvailable];
+}
+
+- (void)setStateAvailable:(nullable NSNumber<SDLBool> *)stateAvailable {
+ [store sdl_setObject:stateAvailable forName:SDLNameStateAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)stateAvailable {
+ return [store sdl_objectForName:SDLNameStateAvailable];
+}
+
+- (void)setSignalStrengthAvailable:(nullable NSNumber<SDLBool> *)signalStrengthAvailable {
+ [store sdl_setObject:signalStrengthAvailable forName:SDLNameSignalStrengthAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)signalStrengthAvailable {
+ return [store sdl_objectForName:SDLNameSignalStrengthAvailable];
+}
+
+- (void)setSignalChangeThresholdAvailable:(nullable NSNumber<SDLBool> *)signalChangeThresholdAvailable {
+ [store sdl_setObject:signalChangeThresholdAvailable forName:SDLNameSignalChangeThresholdAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)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..693aa4272
--- /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<SDLInt> *)frequencyInteger frequencyFraction:(nullable NSNumber<SDLInt> *)frequencyFraction band:(nullable SDLRadioBand)band hdChannel:(nullable NSNumber<SDLInt> *)hdChannel radioEnable:(nullable NSNumber<SDLBool> *)radioEnable;
+
+/**
+ * @abstract The integer part of the frequency ie for 101.7 this value should be 101
+ *
+ * Integer
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLInt> *frequencyInteger;
+
+/**
+ * @abstract The fractional part of the frequency for 101.7 is 7
+ *
+ * Integer
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLInt> *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<SDLInt> *availableHDs;
+
+/**
+ * @abstract Current HD sub-channel if available
+ *
+ * Integer value Min Value - 1 Max Value -3
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLInt> *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<SDLInt> *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<SDLInt> *signalChangeThreshold;
+
+/**
+ * @abstract True if the radio is on, false is the radio is off
+ *
+ * Boolean value
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *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<SDLInt> *)frequencyInteger frequencyFraction:(nullable NSNumber<SDLInt> *)frequencyFraction band:(nullable SDLRadioBand)band hdChannel:(nullable NSNumber<SDLInt> *)hdChannel radioEnable:(nullable NSNumber<SDLBool> *)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<SDLInt> *)frequencyInteger {
+ [store sdl_setObject:frequencyInteger forName:SDLNameFrequencyInteger];
+}
+
+- (nullable NSNumber<SDLInt> *)frequencyInteger {
+ return [store sdl_objectForName:SDLNameFrequencyInteger];
+}
+
+- (void)setFrequencyFraction:(nullable NSNumber<SDLInt> *)frequencyFraction {
+ [store sdl_setObject:frequencyFraction forName:SDLNameFrequencyFraction];
+}
+
+- (nullable NSNumber<SDLInt> *)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<SDLInt> *)availableHDs {
+ [store sdl_setObject:availableHDs forName:SDLNameAvailableHDs];
+}
+
+- (nullable NSNumber<SDLInt> *)availableHDs {
+ return [store sdl_objectForName:SDLNameAvailableHDs];
+}
+
+- (void)setHdChannel:(nullable NSNumber<SDLInt> *)hdChannel {
+ [store sdl_setObject:hdChannel forName:SDLNameHDChannel];
+}
+
+- (nullable NSNumber<SDLInt> *)hdChannel {
+ return [store sdl_objectForName:SDLNameHDChannel];
+}
+
+- (void)setSignalStrength:(nullable NSNumber<SDLInt> *)signalStrength {
+ [store sdl_setObject:signalStrength forName:SDLNameSignalStrength];
+}
+
+- (nullable NSNumber<SDLInt> *)signalStrength {
+ return [store sdl_objectForName:SDLNameSignalStrength];
+}
+
+- (void)setSignalChangeThreshold:(nullable NSNumber<SDLInt> *)signalChangeThreshold {
+ [store sdl_setObject:signalChangeThreshold forName:SDLNameSignalChangeThreshold];
+}
+
+- (nullable NSNumber<SDLInt> *)signalChangeThreshold {
+ return [store sdl_objectForName:SDLNameSignalChangeThreshold];
+}
+
+- (void)setRadioEnable:(nullable NSNumber<SDLBool> *)radioEnable {
+ [store sdl_setObject:radioEnable forName:SDLNameRadioEnable];
+}
+
+- (nullable NSNumber<SDLBool> *)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/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<SDLClimateControlCapabilities *> *)climateControlCapabilities radioControlCapabilities:(nullable NSArray<SDLRadioControlCapabilities *> *)radioControlCapabilities buttonCapabilities:(nullable NSArray<SDLButtonCapabilities *> *)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<SDLClimateControlCapabilities *> *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<SDLRadioControlCapabilities *> *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<SDLButtonCapabilities *> *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<SDLClimateControlCapabilities *> *)climateControlCapabilities radioControlCapabilities:(nullable NSArray<SDLRadioControlCapabilities *> *)radioControlCapabilities buttonCapabilities:(nullable NSArray<SDLButtonCapabilities *> *)buttonCapabilities {
+ self = [super init];
+ if (!self) {
+ return nil;
+ }
+
+ self.climateControlCapabilities = climateControlCapabilities;
+ self.radioControlCapabilities = radioControlCapabilities;
+ self.buttonCapabilities = buttonCapabilities;
+
+ return self;
+}
+
+- (void)setClimateControlCapabilities:(nullable NSArray<SDLClimateControlCapabilities *> *)climateControlCapabilities {
+ [store sdl_setObject:climateControlCapabilities forName:SDLNameClimateControlCapabilities];
+}
+
+- (nullable NSArray<SDLClimateControlCapabilities *> *)climateControlCapabilities {
+ return [store sdl_objectsForName:SDLNameClimateControlCapabilities ofClass:SDLClimateControlCapabilities.class];
+}
+
+-(void)setRadioControlCapabilities:(nullable NSArray<SDLRadioControlCapabilities *> *)radioControlCapabilities {
+ [store sdl_setObject:radioControlCapabilities forName:SDLNameRadioControlCapabilities ];
+}
+
+- (nullable NSArray<SDLRadioControlCapabilities *> *)radioControlCapabilities {
+ return [store sdl_objectsForName:SDLNameRadioControlCapabilities ofClass:SDLRadioControlCapabilities.class];
+}
+
+- (void)setButtonCapabilities:(nullable NSArray<SDLButtonCapabilities *> *)buttonCapabilities {
+ [store sdl_setObject:buttonCapabilities forName:SDLNameButtonCapabilities];}
+
+- (nullable NSArray<SDLButtonCapabilities *> *)buttonCapabilities {
+ return [store sdl_objectsForName:SDLNameButtonCapabilities ofClass:SDLButtonCapabilities.class];
+}
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLResult.h b/SmartDeviceLink/SDLResult.h
index ee9cd6df0..dadc0bec2 100644
--- a/SmartDeviceLink/SDLResult.h
+++ b/SmartDeviceLink/SDLResult.h
@@ -185,3 +185,13 @@ 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.
*/
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;
+
+/**
+ * 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 23b6cdd1c..77c8c5529 100644
--- a/SmartDeviceLink/SDLResult.m
+++ b/SmartDeviceLink/SDLResult.m
@@ -37,3 +37,6 @@ 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";
+
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/SDLShow.h b/SmartDeviceLink/SDLShow.h
index 5c44548ae..8eef691a6 100644
--- a/SmartDeviceLink/SDLShow.h
+++ b/SmartDeviceLink/SDLShow.h
@@ -48,8 +48,6 @@ NS_ASSUME_NONNULL_BEGIN
- (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<SDLSoftButton *> *)softButtons customPresets:(nullable NSArray<NSString *> *)customPresets __deprecated_msg(("Use initWithMainField1:(NSString *)mainField1 (NSString *)mainField2 (NSString *)mainField3 (NSString *)mainField4 (SDLTextAlignment *)alignment (NSString *)statusBar (NSString *)mediaClock (NSString *)mediaTrack (SDLImage *)graphic (NSArray<SDLSoftButton *> *)softButtons (NSArray<NSString *> *)customPresets (SDLMetadataStruct *)metadata instead"));
-
- (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<SDLSoftButton *> *)softButtons customPresets:(nullable NSArray<NSString *> *)customPresets textFieldMetadata:(nullable SDLMetadataTags *)metadata;
/**
diff --git a/SmartDeviceLink/SDLShow.m b/SmartDeviceLink/SDLShow.m
index 80f4f9d18..388865d24 100644
--- a/SmartDeviceLink/SDLShow.m
+++ b/SmartDeviceLink/SDLShow.m
@@ -73,27 +73,6 @@ NS_ASSUME_NONNULL_BEGIN
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:(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<SDLSoftButton *> *)softButtons customPresets:(nullable NSArray<NSString *> *)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 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<SDLSoftButton *> *)softButtons customPresets:(nullable NSArray<NSString *> *)customPresets textFieldMetadata:(nullable SDLMetadataTags *)metadata {
self = [self init];
if (!self) {
diff --git a/SmartDeviceLink/SDLStateMachine.m b/SmartDeviceLink/SDLStateMachine.m
index f86a002b2..cc34d99e2 100644
--- a/SmartDeviceLink/SDLStateMachine.m
+++ b/SmartDeviceLink/SDLStateMachine.m
@@ -117,10 +117,11 @@ SDLStateMachineTransitionFormat const SDLStateMachineTransitionFormatDidEnter =
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"
@@ -128,9 +129,9 @@ SDLStateMachineTransitionFormat const SDLStateMachineTransitionFormatDidEnter =
[self.target performSelector:didEnter];
#pragma clang diagnostic pop
}
- } else {
- self.currentState = state;
}
+
+ self.currentState = state;
}
/**
diff --git a/SmartDeviceLink/SDLStreamingMediaConfiguration.h b/SmartDeviceLink/SDLStreamingMediaConfiguration.h
index f427c8e3c..e1bbb881a 100644
--- a/SmartDeviceLink/SDLStreamingMediaConfiguration.h
+++ b/SmartDeviceLink/SDLStreamingMediaConfiguration.h
@@ -29,7 +29,7 @@ NS_ASSUME_NONNULL_BEGIN
@property (assign, nonatomic) SDLStreamingEncryptionFlag maximumDesiredEncryption;
/**
- * Properties to use for applications that utilitze the video encoder for streaming.
+ * 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<NSString *, id> *customVideoEncoderSettings;
diff --git a/SmartDeviceLink/SDLStreamingMediaLifecycleManager.m b/SmartDeviceLink/SDLStreamingMediaLifecycleManager.m
index 6b5baa9db..ecbbf88d8 100644
--- a/SmartDeviceLink/SDLStreamingMediaLifecycleManager.m
+++ b/SmartDeviceLink/SDLStreamingMediaLifecycleManager.m
@@ -58,7 +58,7 @@ SDLAudioStreamState *const SDLAudioStreamStateStarting = @"AudioStreamStarting";
SDLAudioStreamState *const SDLAudioStreamStateReady = @"AudioStreamReady";
SDLAudioStreamState *const SDLAudioStreamStateShuttingDown = @"AudioStreamShuttingDown";
-static NSUInteger const SDLFramesToSendOnBackground = 30;
+static NSUInteger const FramesToSendOnBackground = 30;
typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_Nullable capability);
@@ -670,8 +670,13 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N
return;
}
- const CMTime interval = CMTimeMake(1, 30);
- for (int frameCount = 0; frameCount < SDLFramesToSendOnBackground; frameCount++) {
+ 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];
diff --git a/SmartDeviceLink/SDLSyncMsgVersion.h b/SmartDeviceLink/SDLSyncMsgVersion.h
index de5050889..87af0c1d3 100644
--- a/SmartDeviceLink/SDLSyncMsgVersion.h
+++ b/SmartDeviceLink/SDLSyncMsgVersion.h
@@ -14,10 +14,7 @@ NS_ASSUME_NONNULL_BEGIN
@interface SDLSyncMsgVersion : SDLRPCStruct
-// 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");
-
-- (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
diff --git a/SmartDeviceLink/SDLSyncMsgVersion.m b/SmartDeviceLink/SDLSyncMsgVersion.m
index 780edb2fe..7d256ce14 100644
--- a/SmartDeviceLink/SDLSyncMsgVersion.m
+++ b/SmartDeviceLink/SDLSyncMsgVersion.m
@@ -11,20 +11,7 @@ NS_ASSUME_NONNULL_BEGIN
@implementation SDLSyncMsgVersion
-- (instancetype)initWithMajorVersion:(NSInteger)majorVersion minorVersion:(NSInteger)minorVersion {
- self = [self init];
- if (!self) {
- return nil;
- }
-
- self.majorVersion = @(majorVersion);
- self.minorVersion = @(minorVersion);
- self.patchVersion = @(0);
-
- return self;
-}
-
-- (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;
diff --git a/SmartDeviceLink/SDLSystemCapability.h b/SmartDeviceLink/SDLSystemCapability.h
index 8d1f8483f..3bcd54418 100644..100755
--- a/SmartDeviceLink/SDLSystemCapability.h
+++ b/SmartDeviceLink/SDLSystemCapability.h
@@ -14,6 +14,7 @@
@class SDLPhoneCapability;
@class SDLNavigationCapability;
@class SDLVideoStreamingCapability;
+@class SDLRemoteControlCapabilities;
NS_ASSUME_NONNULL_BEGIN
@@ -29,6 +30,8 @@ NS_ASSUME_NONNULL_BEGIN
- (instancetype)initWithVideoStreamingCapability:(SDLVideoStreamingCapability *)capability;
+- (instancetype)initWithRemoteControlCapability:(SDLRemoteControlCapabilities *)capability;
+
@property (strong, nonatomic) SDLSystemCapabilityType systemCapabilityType;
@property (nullable, strong, nonatomic) SDLNavigationCapability *navigationCapability;
@@ -37,6 +40,8 @@ NS_ASSUME_NONNULL_BEGIN
@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
index 25f638912..5a469683d 100644..100755
--- a/SmartDeviceLink/SDLSystemCapability.m
+++ b/SmartDeviceLink/SDLSystemCapability.m
@@ -14,6 +14,7 @@
#import "SDLPhoneCapability.h"
#import "SDLSystemCapabilityType.h"
#import "SDLVideoStreamingCapability.h"
+#import "SDLRemoteControlCapabilities.h"
NS_ASSUME_NONNULL_BEGIN
@@ -55,6 +56,18 @@ NS_ASSUME_NONNULL_BEGIN
return self;
}
+- (instancetype)initWithRemoteControlCapability:(SDLRemoteControlCapabilities *)capability {
+ self = [self init];
+ if (!self) {
+ return nil;
+ }
+
+ self.systemCapabilityType = SDLSystemCapabilityTypeRemoteControl;
+ self.remoteControlCapability = capability;
+
+ return self;
+}
+
- (void)setSystemCapabilityType:(SDLSystemCapabilityType)type {
[store sdl_setObject:type forName:SDLNameSystemCapabilityType];
}
@@ -89,6 +102,14 @@ NS_ASSUME_NONNULL_BEGIN
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
index e8a177a41..61f8f836a 100644..100755
--- a/SmartDeviceLink/SDLSystemCapabilityType.h
+++ b/SmartDeviceLink/SDLSystemCapabilityType.h
@@ -25,5 +25,11 @@ extern SDLSystemCapabilityType const SDLSystemCapabilityTypePhoneCall;
/**
@abstract VIDEO_STREAMING
+
*/
extern SDLSystemCapabilityType const SDLSystemCapabilityTypeVideoStreaming;
+
+/**
+ @abstract REMOTE_CONTROL
+ */
+extern SDLSystemCapabilityType const SDLSystemCapabilityTypeRemoteControl;
diff --git a/SmartDeviceLink/SDLSystemCapabilityType.m b/SmartDeviceLink/SDLSystemCapabilityType.m
index 47a425c53..c8a25e755 100644..100755
--- a/SmartDeviceLink/SDLSystemCapabilityType.m
+++ b/SmartDeviceLink/SDLSystemCapabilityType.m
@@ -12,3 +12,4 @@
SDLSystemCapabilityType const SDLSystemCapabilityTypeNavigation = @"NAVIGATION";
SDLSystemCapabilityType const SDLSystemCapabilityTypePhoneCall = @"PHONE_CALL";
SDLSystemCapabilityType const SDLSystemCapabilityTypeVideoStreaming = @"VIDEO_STREAMING";
+SDLSystemCapabilityType const SDLSystemCapabilityTypeRemoteControl = @"REMOTE_CONTROL";
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<SDLFloat> *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<SDLFloat> *)value {
+ [store sdl_setObject:value forName:SDLNameValue];
+}
+
+- (NSNumber<SDLFloat> *)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/SDLTimer.h b/SmartDeviceLink/SDLTimer.h
index 0382b7f67..cba9efefa 100644
--- a/SmartDeviceLink/SDLTimer.h
+++ b/SmartDeviceLink/SDLTimer.h
@@ -13,7 +13,7 @@ NS_ASSUME_NONNULL_BEGIN
@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;
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/SmartDeviceLink.h b/SmartDeviceLink/SmartDeviceLink.h
index 3f72f59ff..81b343567 100644
--- a/SmartDeviceLink/SmartDeviceLink.h
+++ b/SmartDeviceLink/SmartDeviceLink.h
@@ -50,6 +50,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLAddSubMenu.h"
#import "SDLAlert.h"
#import "SDLAlertManeuver.h"
+#import "SDLButtonPress.h"
#import "SDLChangeRegistration.h"
#import "SDLCreateInteractionChoiceSet.h"
#import "SDLDeleteCommand.h"
@@ -61,6 +62,7 @@ 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"
@@ -77,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,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"
@@ -109,6 +113,7 @@ 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"
@@ -125,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"
@@ -150,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"
@@ -170,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"
@@ -190,6 +199,7 @@ 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"
@@ -197,7 +207,11 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#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"
@@ -206,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"
@@ -232,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"
@@ -258,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"
@@ -265,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"
@@ -275,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"
@@ -287,6 +307,7 @@ 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"
diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLConfigurationSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLConfigurationSpec.m
index 358e9f816..6afb1f3cf 100644
--- a/SmartDeviceLinkTests/DevAPISpecs/SDLConfigurationSpec.m
+++ b/SmartDeviceLinkTests/DevAPISpecs/SDLConfigurationSpec.m
@@ -5,6 +5,7 @@
#import "SDLLifecycleConfiguration.h"
#import "SDLLogConfiguration.h"
#import "SDLLockScreenConfiguration.h"
+#import "SDLStreamingMediaConfiguration.h"
QuickSpecBegin(SDLConfigurationSpec)
@@ -15,6 +16,7 @@ describe(@"a configuration", ^{
__block SDLLifecycleConfiguration *someLifecycleConfig = nil;
__block SDLLockScreenConfiguration *someLockscreenConfig = nil;
__block SDLLogConfiguration *someLogConfig = nil;
+ __block SDLStreamingMediaConfiguration *someStreamingConfig = nil;
__block NSString *someAppName = nil;
__block NSString *someAppId = nil;
@@ -30,14 +32,43 @@ describe(@"a configuration", ^{
someLifecycleConfig = [SDLLifecycleConfiguration defaultConfigurationWithAppName:someAppName appId:someAppId];
someLockscreenConfig = [SDLLockScreenConfiguration enabledConfigurationWithAppIcon:someImage backgroundColor:someBackgroundColor];
someLogConfig = [SDLLogConfiguration defaultConfiguration];
-
- testConfig = [SDLConfiguration configurationWithLifecycle:someLifecycleConfig lockScreen:someLockscreenConfig logging:someLogConfig];
+ 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/SDLLifecycleManagerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleManagerSpec.m
index 48a8e690d..9a10d666a 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"
@@ -58,7 +59,7 @@ QuickConfigurationEnd
QuickSpecBegin(SDLLifecycleManagerSpec)
-xdescribe(@"a lifecycle manager", ^{
+describe(@"a lifecycle manager", ^{
__block SDLLifecycleManager *testManager = nil;
__block SDLConfiguration *testConfig = nil;
@@ -79,7 +80,7 @@ xdescribe(@"a lifecycle manager", ^{
testLifecycleConfig.shortAppName = @"Short Name";
testLifecycleConfig.appType = SDLAppHMITypeNavigation;
- testConfig = [SDLConfiguration configurationWithLifecycle:testLifecycleConfig lockScreen:[SDLLockScreenConfiguration disabledConfiguration]];
+ testConfig = [SDLConfiguration configurationWithLifecycle:testLifecycleConfig lockScreen:[SDLLockScreenConfiguration disabledConfiguration] logging:[SDLLogConfiguration defaultConfiguration]];
testManager = [[SDLLifecycleManager alloc] initWithConfiguration:testConfig delegate:managerDelegateMock];
testManager.lockScreenManager = lockScreenManagerMock;
testManager.fileManager = fileManagerMock;
@@ -87,7 +88,7 @@ xdescribe(@"a lifecycle manager", ^{
testManager.streamManager = streamingManagerMock;
});
- it(@"should initialize properties", ^{
+ 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));
@@ -237,13 +238,14 @@ xdescribe(@"a lifecycle manager", ^{
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]]);
@@ -304,9 +306,10 @@ xdescribe(@"a lifecycle manager", ^{
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());
});
});
});
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 @@ describe(@"a notification dispatcher", ^{
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 @@ describe(@"a notification dispatcher", ^{
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 @@ describe(@"a notification dispatcher", ^{
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/ProtocolSpecs/HeaderSpecs/SDLV2ProtocolHeaderSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLV2ProtocolHeaderSpec.m
index f62ddf57d..74969e062 100644
--- a/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLV2ProtocolHeaderSpec.m
+++ b/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLV2ProtocolHeaderSpec.m
@@ -68,36 +68,6 @@ describe(@"Copy Tests", ^ {
});
});
-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));
diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAppHMITypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAppHMITypeSpec.m
index 037c569be..f00bfa300 100644
--- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAppHMITypeSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAppHMITypeSpec.m
@@ -25,6 +25,7 @@ describe(@"Individual Enum Value Tests", ^ {
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/SDLButtonNameSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLButtonNameSpec.m
index aa0d73a37..68f6a851e 100644
--- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLButtonNameSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLButtonNameSpec.m
@@ -31,6 +31,24 @@ describe(@"Individual Enum Value Tests", ^ {
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"));
});
});
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 <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#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 <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#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/SDLResultSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLResultSpec.m
index f2682b0b4..239140d19 100644
--- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLResultSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLResultSpec.m
@@ -47,6 +47,9 @@ describe(@"Individual Enum Value Tests", ^ {
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"));
+
});
});
diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSystemCapabilityTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSystemCapabilityTypeSpec.m
index cfc5d85f4..0acaa4b6e 100644..100755
--- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSystemCapabilityTypeSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSystemCapabilityTypeSpec.m
@@ -13,6 +13,7 @@ describe(@"Individual Enum Value Tests", ^ {
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/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 <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#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/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 <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#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/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 <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#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<NSString *, id> *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/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 <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#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<NSString *, id> *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/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 <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#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<NSString *, id> *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 d37f88bf3..99feed6f3 100644
--- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetSystemCapabilitiesSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetSystemCapabilitiesSpec.m
@@ -39,8 +39,8 @@ describe(@"Initialization tests", ^{
expect(testRequest.systemCapabilityType).to(beNil());
});
- it(@"should initialize correctly with initWithType:", ^{
- SDLGetSystemCapability *testRequest = [[SDLGetSystemCapability alloc] initWithType:SDLSystemCapabilityTypePhoneCall];
+ it(@"Should get correctly when initialized with systemCapabilityType", ^ {
+ SDLGetSystemCapability* testRequest = [[SDLGetSystemCapability alloc] initWithType:SDLSystemCapabilityTypePhoneCall];
expect(testRequest.systemCapabilityType).to(equal(SDLSystemCapabilityTypePhoneCall));
});
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 <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#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<NSString *, id> *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/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 <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLButtonPressResponse.h"
+#import "SDLNames.h"
+
+QuickSpecBegin(SDLButtonPressResponseSpec)
+
+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 <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#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<NSString *, id> *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/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 <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#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<NSString *, id> *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/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 <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#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<NSString *, id> *dict = [@{SDLNameModuleName:@"Name",
+ SDLNameFanSpeedAvailable:@YES,
+ SDLNameDesiredTemperatureAvailable:@NO,
+ SDLNameACEnableAvailable:@NO,
+ SDLNameACMaxEnableAvailable:@NO,
+ SDLNameCirculateAirEnableAvailable:@YES,
+ SDLNameAutoModeEnableAvailable:@NO,
+ SDLNameDualModeEnableAvailable:@NO,
+ SDLNameDefrostZoneAvailable:@YES,
+ SDLNameDefrostZone:[@[SDLDefrostZoneFront] copy],
+ SDLNameVentilationModeAvailable:@NO,
+ SDLNameVentilationMode:[@[SDLVentilationModeUpper] copy]} 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 <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#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<NSString *, id> *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/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 <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#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/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 <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#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 <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#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 <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#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/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 <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#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/SDLSystemCapabilitySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSystemCapabilitySpec.m
index 05e5f4fa5..abfd13afb 100644..100755
--- 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,6 +20,7 @@
QuickSpecBegin(SDLSystemCapabilitySpec)
+SDLRemoteControlCapabilities *someRemoteControlCapabilities = [[SDLRemoteControlCapabilities alloc] init];
describe(@"Getter/Setter Tests", ^ {
it(@"Should set and get correctly", ^ {
SDLSystemCapability *testStruct = [[SDLSystemCapability alloc] init];
@@ -25,6 +28,7 @@ describe(@"Getter/Setter Tests", ^ {
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(SDLSystemCapabilityTypeNavigation));
expect(testStruct.navigationCapability.sendLocationEnabled).to(equal(YES));
@@ -34,6 +38,8 @@ describe(@"Getter/Setter Tests", ^ {
testStruct.systemCapabilityType = SDLSystemCapabilityTypeVideoStreaming;
expect(testStruct.systemCapabilityType).to(equal(SDLSystemCapabilityTypeVideoStreaming));
+ expect(testStruct.remoteControlCapability).to(equal(someRemoteControlCapabilities));
+
});
});
@@ -42,13 +48,15 @@ describe(@"Initialization tests", ^{
NSMutableDictionary* dict = [@{SDLNameSystemCapabilityType: @"NAVIGATION",
SDLNameNavigationCapability: @{SDLNameGetWayPointsEnabled: @(NO),
SDLNameSendLocationEnabled: @(YES)},
- SDLNamePhoneCapability: @{SDLNameDialNumberEnabled: @(YES)}} mutableCopy];
+ SDLNamePhoneCapability: @{SDLNameDialNumberEnabled: @(YES)},
+ SDLNameRemoteControlCapability: someRemoteControlCapabilities} mutableCopy];
SDLSystemCapability *testStruct = [[SDLSystemCapability alloc] initWithDictionary:dict];
expect(testStruct.systemCapabilityType).to(equal(SDLSystemCapabilityTypeNavigation));
expect(testStruct.navigationCapability.sendLocationEnabled).to(equal(YES));
expect(testStruct.navigationCapability.getWayPointsEnabled).to(equal(NO));
expect(testStruct.phoneCapability.dialNumberEnabled).to(equal(YES));
+ expect(testStruct.remoteControlCapability).to(equal(someRemoteControlCapabilities));
});
it(@"Should return nil if not set", ^ {
@@ -58,6 +66,8 @@ describe(@"Initialization tests", ^{
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:", ^{
@@ -68,6 +78,7 @@ describe(@"Initialization tests", ^{
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:", ^{
@@ -79,6 +90,7 @@ describe(@"Initialization tests", ^{
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:", ^{
@@ -108,6 +120,15 @@ describe(@"Initialization tests", ^{
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));
+ });
});
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 <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#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/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testAppAndVehicleIcons@2x.png b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testAppAndVehicleIcons@2x.png
index c9180aff7..fb6f87fba 100644
--- a/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testAppAndVehicleIcons@2x.png
+++ b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testAppAndVehicleIcons@2x.png
Binary files differ
diff --git a/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testLightBackgroundNoAppNoVehicleIcons@2x.png b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testLightBackgroundNoAppNoVehicleIcons@2x.png
index 401793f2c..0830ec96c 100644
--- a/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testLightBackgroundNoAppNoVehicleIcons@2x.png
+++ b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testLightBackgroundNoAppNoVehicleIcons@2x.png
Binary files differ
diff --git a/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testNoAppNoVehicleIcons@2x.png b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testNoAppNoVehicleIcons@2x.png
index c5eb09c13..ea74dd949 100644
--- a/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testNoAppNoVehicleIcons@2x.png
+++ b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testNoAppNoVehicleIcons@2x.png
Binary files differ
diff --git a/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyAppIcon@2x.png b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyAppIcon@2x.png
index 7ff7a7ddb..6b242fb84 100644
--- a/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyAppIcon@2x.png
+++ b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyAppIcon@2x.png
Binary files differ
diff --git a/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyVehicleIcon@2x.png b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyVehicleIcon@2x.png
index 24ad51ee3..1e4539141 100644
--- a/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyVehicleIcon@2x.png
+++ b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyVehicleIcon@2x.png
Binary files differ