summaryrefslogtreecommitdiff
path: root/SmartDeviceLink-iOS/SmartDeviceLink
diff options
context:
space:
mode:
Diffstat (limited to 'SmartDeviceLink-iOS/SmartDeviceLink')
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/ISDLProxy.h21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/Info.plist26
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAbstractProtocol.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAbstractProtocol.m45
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAbstractTransport.h23
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAbstractTransport.m45
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAddCommand.h21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAddCommand.m79
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAddCommandResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAddCommandResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAddSubMenu.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAddSubMenu.m57
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAddSubMenuResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAddSubMenuResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAirbagStatus.h24
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAirbagStatus.m157
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAlert.h22
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAlert.m137
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAlertManeuver.h16
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAlertManeuver.m65
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAlertManeuverResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAlertManeuverResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAlertResponse.h15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAlertResponse.m33
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAmbientLightStatus.h22
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAmbientLightStatus.m101
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAppHMIType.h24
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAppHMIType.m119
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h24
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m119
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAudioPassThruCapabilities.h21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAudioPassThruCapabilities.m72
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAudioStreamingState.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAudioStreamingState.m56
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAudioType.h15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLAudioType.m38
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLBeltStatus.h31
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLBeltStatus.m276
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLBitsPerSample.h16
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLBitsPerSample.m47
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLBodyInformation.h24
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLBodyInformation.m115
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonCapabilities.h20
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonCapabilities.m74
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonEventMode.h16
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonEventMode.m47
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonName.h31
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonName.m182
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonPressMode.h16
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonPressMode.m47
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLCarModeStatus.h18
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLCarModeStatus.m65
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLChangeRegistration.h18
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLChangeRegistration.m55
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLChangeRegistrationResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLChangeRegistrationResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLCharacterSet.h18
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLCharacterSet.m65
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLChoice.h23
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLChoice.m115
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLClusterModeStatus.h22
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLClusterModeStatus.m84
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLCompassDirection.h22
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLCompassDirection.m101
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLComponentVolumeStatus.h20
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLComponentVolumeStatus.m83
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLConsoleController.h21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLConsoleController.m220
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLCreateInteractionChoiceSet.h16
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLCreateInteractionChoiceSet.m55
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDIDResult.h19
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDIDResult.m62
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDebugTool.h54
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDebugTool.m213
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDecoder.h11
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteCommand.h15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteCommand.m33
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteCommandResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteCommandResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteFile.h15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteFile.m33
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteFileResponse.h15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteFileResponse.m33
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteInteractionChoiceSet.h15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteInteractionChoiceSet.m33
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteSubMenu.h15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteSubMenu.m33
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteSubMenuResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteSubMenuResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDeviceInfo.h20
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDeviceInfo.m93
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDeviceLevelStatus.h20
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDeviceLevelStatus.m83
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDeviceStatus.h28
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDeviceStatus.m168
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDiagnosticMessage.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDiagnosticMessage.m57
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDiagnosticMessageResponse.h15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDiagnosticMessageResponse.m33
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDimension.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDimension.m56
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDisplayCapabilities.h25
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDisplayCapabilities.m157
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDisplayType.h24
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDisplayType.m119
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDriverDistractionState.h16
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLDriverDistractionState.m47
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLECallConfirmationStatus.h21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLECallConfirmationStatus.m92
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLECallInfo.h20
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLECallInfo.m72
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLEmergencyEvent.h23
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLEmergencyEvent.m101
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLEmergencyEventType.h21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLEmergencyEventType.m92
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLEncodedSyncPData.h15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLEncodedSyncPData.m33
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLEncodedSyncPDataResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLEncodedSyncPDataResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLEncoder.h11
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLEndAudioPassThru.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLEndAudioPassThru.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLEndAudioPassThruResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLEndAudioPassThruResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLEnum.h16
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLEnum.m22
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLFileType.h22
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLFileType.m101
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLFuelCutoffStatus.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLFuelCutoffStatus.m56
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLFunctionID.h16
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLFunctionID.m94
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLGPSData.h35
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLGPSData.m247
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLGenericResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLGenericResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLGetDTCs.h16
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLGetDTCs.m45
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLGetDTCsResponse.h16
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLGetDTCsResponse.m45
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLGetVehicleData.h39
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLGetVehicleData.m321
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLGetVehicleDataResponse.h55
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLGetVehicleDataResponse.m396
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLGlobalProperty.h21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLGlobalProperty.m92
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLHMILevel.h18
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLHMILevel.m65
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLHMIPermissions.h16
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLHMIPermissions.m64
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLHMIZoneCapabilities.h16
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLHMIZoneCapabilities.m47
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLHeadLampStatus.h19
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLHeadLampStatus.m62
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLHexUtility.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLHexUtility.m23
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLIAPTransport.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLIAPTransport.m439
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLIgnitionStableStatus.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLIgnitionStableStatus.m56
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLIgnitionStatus.h20
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLIgnitionStatus.m83
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLImage.h18
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLImage.m50
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLImageField.h20
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLImageField.m77
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLImageFieldName.h25
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLImageFieldName.m128
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLImageResolution.h16
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLImageResolution.m45
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLImageType.h16
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLImageType.m47
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLInteractionMode.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLInteractionMode.m56
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLInterfaceProtocol.h22
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLJingle.h15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLJingle.m15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLJsonDecoder.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLJsonDecoder.m27
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLJsonEncoder.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLJsonEncoder.m27
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLKeyboardEvent.h18
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLKeyboardEvent.m65
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLKeyboardLayout.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLKeyboardLayout.m56
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLKeyboardProperties.h23
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLKeyboardProperties.m96
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLKeypressMode.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLKeypressMode.m56
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLLanguage.h38
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLLanguage.m245
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLLayoutMode.h19
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLLayoutMode.m74
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLListFiles.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLListFiles.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLListFilesResponse.h16
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLListFilesResponse.m45
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLLockScreenManager.h19
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLLockScreenManager.m94
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLLockScreenStatus.h18
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLLockScreenStatus.m67
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLMaintenanceModeStatus.h18
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLMaintenanceModeStatus.m65
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLMediaClockFormat.h21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLMediaClockFormat.m92
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLMenuParams.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLMenuParams.m57
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLMyKey.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLMyKey.m38
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLNames.h395
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLObjectWithPriority.h16
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLObjectWithPriority.m10
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnAppInterfaceUnregistered.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnAppInterfaceUnregistered.m38
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnAudioPassThru.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnAudioPassThru.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnButtonEvent.h20
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnButtonEvent.m67
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnButtonPress.h20
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnButtonPress.m67
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnCommand.h18
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnCommand.m50
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnDriverDistraction.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnDriverDistraction.m38
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnEncodedSyncPData.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnEncodedSyncPData.m57
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnHMIStatus.h21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnHMIStatus.m72
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnHashChange.h15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnHashChange.m33
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnKeyboardInput.h18
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnKeyboardInput.m50
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnLanguageChange.h18
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnLanguageChange.m55
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnLockScreenStatus.h24
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnLockScreenStatus.m85
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnPermissionsChange.h15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnPermissionsChange.m43
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnSyncPData.h16
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnSyncPData.m45
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnSystemRequest.h23
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnSystemRequest.m103
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnTBTClientState.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnTBTClientState.m38
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnTouchEvent.h18
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnTouchEvent.m60
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnVehicleData.h55
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLOnVehicleData.m396
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPRNDL.h30
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPRNDL.m173
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLParameterPermissions.h16
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLParameterPermissions.m45
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformAudioPassThru.h26
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformAudioPassThru.m142
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformAudioPassThruResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformAudioPassThruResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformInteraction.h26
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformInteraction.m177
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformInteractionResponse.h19
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformInteractionResponse.m62
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPermissionItem.h20
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPermissionItem.m67
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPermissionStatus.h18
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPermissionStatus.m65
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPolicyDataParser.h31
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPolicyDataParser.m125
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPowerModeQualificationStatus.h18
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPowerModeQualificationStatus.m65
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPowerModeStatus.h23
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPowerModeStatus.m110
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPredefinedLayout.h34
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPredefinedLayout.m209
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPrerecordedSpeech.h19
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPrerecordedSpeech.m74
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPresetBankCapabilities.h15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPresetBankCapabilities.m33
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPrimaryAudioSource.h21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPrimaryAudioSource.m92
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPrioritizedObjectCollection.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPrioritizedObjectCollection.m76
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocol.h16
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocol.m283
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolHeader.h53
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolHeader.m57
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolListener.h20
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolMessage.h24
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolMessage.m100
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolMessageAssembler.h21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolMessageAssembler.m95
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolMessageDisassembler.h12
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolMessageDisassembler.m86
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolRecievedMessageRouter.h16
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolRecievedMessageRouter.m93
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLProxy.h49
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLProxy.m594
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLProxyFactory.h15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLProxyFactory.m33
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLProxyListener.h129
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPutFile.h22
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPutFile.m98
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPutFileResponse.h15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLPutFileResponse.m33
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCMessage.h36
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCMessage.m156
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCMessageType.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCMessageType.m55
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCNotification.h10
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCNotification.m9
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCPayload.h18
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCPayload.m123
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCRequest.h12
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCRequest.m23
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCRequestFactory.h188
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCRequestFactory.m623
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCResponse.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCResponse.m64
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLReadDID.h16
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLReadDID.m45
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLReadDIDResponse.h15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLReadDIDResponse.m43
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLRegisterAppInterface.h30
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLRegisterAppInterface.m205
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLRegisterAppInterfaceResponse.h34
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLRegisterAppInterfaceResponse.m289
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLRequestType.h20
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLRequestType.m83
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLResetGlobalProperties.h15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLResetGlobalProperties.m43
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLResetGlobalPropertiesResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLResetGlobalPropertiesResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLResult.h46
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLResult.m317
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSamplingRate.h18
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSamplingRate.m65
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLScreenParams.h19
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLScreenParams.m55
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLScrollableMessage.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLScrollableMessage.m67
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLScrollableMessageResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLScrollableMessageResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSetAppIcon.h15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSetAppIcon.m33
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSetAppIconResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSetAppIconResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSetDisplayLayout.h15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSetDisplayLayout.m33
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSetDisplayLayoutResponse.h21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSetDisplayLayoutResponse.m99
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSetGlobalProperties.h24
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSetGlobalProperties.m144
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSetGlobalPropertiesResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSetGlobalPropertiesResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSetMediaClockTimer.h20
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSetMediaClockTimer.m72
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSetMediaClockTimerResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSetMediaClockTimerResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLShow.h29
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLShow.m190
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLShowConstantTBT.h27
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLShowConstantTBT.m173
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLShowConstantTBTResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLShowConstantTBTResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLShowResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLShowResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSingleTireStatus.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSingleTireStatus.m38
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSiphonServer.h19
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSiphonServer.m466
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSlider.h19
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSlider.m81
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSliderResponse.h15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSliderResponse.m33
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSoftButton.h24
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSoftButton.m108
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSoftButtonCapabilities.h18
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSoftButtonCapabilities.m69
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSoftButtonType.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSoftButtonType.m56
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSpeak.h15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSpeak.m43
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSpeakResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSpeakResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSpeechCapabilities.h19
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSpeechCapabilities.m74
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLStartTime.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLStartTime.m57
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeButton.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeButton.m38
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeButtonResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeButtonResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeVehicleData.h38
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeVehicleData.m309
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h40
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeVehicleDataResponse.m429
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSyncMsgVersion.h16
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSyncMsgVersion.m48
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSyncPData.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSyncPData.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSyncPDataResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSyncPDataResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemAction.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemAction.m56
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemContext.h19
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemContext.m74
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemRequest.h18
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemRequest.m50
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemRequestResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemRequestResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTBTState.h24
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTBTState.m119
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTCPTransport.h12
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTCPTransport.m133
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTTSChunk.h18
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTTSChunk.m50
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTTSChunkFactory.h15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTTSChunkFactory.m24
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTextAlignment.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTextAlignment.m56
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTextField.h20
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTextField.m79
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTextFieldName.h38
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTextFieldName.m245
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTimerMode.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTimerMode.m56
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTireStatus.h24
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTireStatus.m140
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchCoord.h16
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchCoord.m45
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchEvent.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchEvent.m67
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchEventCapabilities.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchEventCapabilities.m57
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchType.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchType.m56
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTransport.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTransportDelegate.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTriggerSource.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTriggerSource.m56
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTurn.h18
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLTurn.m50
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLUnregisterAppInterface.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLUnregisterAppInterface.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeButton.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeButton.m38
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeButtonResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeButtonResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeVehicleData.h39
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeVehicleData.m309
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h40
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m429
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLUpdateMode.h19
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLUpdateMode.m74
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLUpdateTurnList.h16
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLUpdateTurnList.m65
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLUpdateTurnListResponse.h13
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLUpdateTurnListResponse.m21
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLV1ProtocolHeader.h15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLV1ProtocolHeader.m78
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLV1ProtocolMessage.h12
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLV1ProtocolMessage.m24
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLV2ProtocolHeader.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLV2ProtocolHeader.m104
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLV2ProtocolMessage.h12
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLV2ProtocolMessage.m58
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataActiveStatus.h19
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataActiveStatus.m74
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataEventStatus.h19
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataEventStatus.m74
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataNotificationStatus.h18
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataNotificationStatus.m65
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataResult.h19
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataResult.m55
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataResultCode.h23
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataResultCode.m110
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataStatus.h17
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataStatus.m56
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataType.h40
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataType.m263
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleType.h18
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleType.m69
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLVrCapabilities.h15
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLVrCapabilities.m42
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLVrHelpItem.h19
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLVrHelpItem.m62
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLWarningLightStatus.h18
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLWarningLightStatus.m65
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLWiperStatus.h29
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SDLWiperStatus.m164
-rw-r--r--SmartDeviceLink-iOS/SmartDeviceLink/SmartDeviceLink.h273
495 files changed, 27537 insertions, 0 deletions
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/ISDLProxy.h b/SmartDeviceLink-iOS/SmartDeviceLink/ISDLProxy.h
new file mode 100644
index 000000000..3d6ced5f9
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/ISDLProxy.h
@@ -0,0 +1,21 @@
+// ISDLProxy.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLProtocol.h"
+#import "SDLProxyListener"
+#import "SDLRPCMessage"
+#import "SDLTransport"
+
+@protocol ISDLProxy
+
+-(id) initWithTransport:(NSObject<SDLTransport>*) transport protocol:(NSObject<SDLProtocol>*) protocol delegate:(NSObject<SDLProxyListener>*) delegate;
+
+-(void) dispose;
+-(void) addDelegate:(NSObject<SDLProxyListener>*) delegate;
+
+-(void) sendRPCRequest:(SDLRPCMessage*) msg;
+-(void) handleRpcMessage:(NSDictionary*) msg;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/Info.plist b/SmartDeviceLink-iOS/SmartDeviceLink/Info.plist
new file mode 100644
index 000000000..e79788ec7
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/Info.plist
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>en</string>
+ <key>CFBundleExecutable</key>
+ <string>$(EXECUTABLE_NAME)</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.smartdevicelink.smartdevicelink</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>$(PRODUCT_NAME)</string>
+ <key>CFBundlePackageType</key>
+ <string>FMWK</string>
+ <key>CFBundleShortVersionString</key>
+ <string>3.1.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>$(CURRENT_PROJECT_VERSION)</string>
+ <key>NSPrincipalClass</key>
+ <string></string>
+</dict>
+</plist>
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAbstractProtocol.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAbstractProtocol.h
new file mode 100644
index 000000000..4eb8af48a
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAbstractProtocol.h
@@ -0,0 +1,17 @@
+// SDLAbstractProtocol.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLInterfaceProtocol.h"
+#import "SDLTransport.h"
+#import "SDLProtocolListener.h"
+
+
+@interface SDLAbstractProtocol : NSObject<SDLInterfaceProtocol>
+
+@property (strong) NSString *debugConsoleGroupName;
+@property (strong) id<SDLTransport> transport;
+@property (weak) id<SDLProtocolListener> protocolDelegate;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAbstractProtocol.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAbstractProtocol.m
new file mode 100644
index 000000000..b0daa2142
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAbstractProtocol.m
@@ -0,0 +1,45 @@
+// SDLAbstractProtocol.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLAbstractProtocol.h"
+
+@implementation SDLAbstractProtocol
+- (id)init {
+ if (self = [super init]) {
+ _debugConsoleGroupName = @"default";
+ }
+ return self;
+}
+
+- (void)sendStartSessionWithType:(SDLServiceType)serviceType {
+ [self doesNotRecognizeSelector:_cmd];
+}
+
+- (void)sendEndSessionWithType:(SDLServiceType)serviceType sessionID:(Byte)sessionID {
+ [self doesNotRecognizeSelector:_cmd];
+}
+
+- (void)sendRPCRequest:(SDLRPCRequest *)rpcRequest {
+ [self doesNotRecognizeSelector:_cmd];
+}
+
+- (void)handleBytesFromTransport:(NSData *)receivedData {
+ [self doesNotRecognizeSelector:_cmd];
+}
+
+
+#pragma - SDLTransportListener Implementation
+- (void)onTransportConnected {
+ [self.protocolDelegate onProtocolOpened];
+}
+
+- (void)onTransportDisconnected {
+ [self.protocolDelegate onProtocolClosed];
+}
+
+- (void)onDataReceived:(NSData *)receivedData {
+ [self handleBytesFromTransport:receivedData];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAbstractTransport.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAbstractTransport.h
new file mode 100644
index 000000000..260d27260
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAbstractTransport.h
@@ -0,0 +1,23 @@
+// SDLAbstractTransport.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+@import Foundation;
+
+#import "SDLTransport.h"
+#import "SDLTransportDelegate.h"
+
+@interface SDLAbstractTransport : NSObject<SDLTransport>
+
+@property (weak) id<SDLTransportDelegate> delegate;
+@property (strong) NSString *debugConsoleGroupName;
+@property (strong, readonly) NSString* endpointName;
+@property (strong, readonly) NSString* endpointParam;
+
+- (id) initWithEndpoint:(NSString*) endpoint endpointParam:(NSString*) endointParam;
+
+- (void)notifyTransportConnected;
+- (void)notifyTransportDisconnected;
+- (void)handleDataReceivedFromTransport:(NSData *)receivedData;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAbstractTransport.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAbstractTransport.m
new file mode 100644
index 000000000..be06cb101
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAbstractTransport.m
@@ -0,0 +1,45 @@
+// SDLAbstractTransport.m
+// SDLAbstractTransport.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLAbstractTransport.h"
+
+@implementation SDLAbstractTransport
+
+- (id) initWithEndpoint:(NSString*) endpoint endpointParam:(NSString*) param {
+ if (self = [super init]) {
+ _endpointName = endpoint;
+ _endpointParam = param;
+ _debugConsoleGroupName = @"default";
+ }
+ return self;
+}
+
+- (void)notifyTransportConnected {
+ [self.delegate onTransportConnected];
+}
+
+- (void)notifyTransportDisconnected {
+ [self.delegate onTransportDisconnected];
+}
+
+- (void)handleDataReceivedFromTransport:(NSData *)receivedData {
+ [self.delegate onDataReceived:receivedData];
+}
+
+
+#pragma mark SDLTransport Implementation
+- (void)connect {
+ [self doesNotRecognizeSelector:_cmd];
+}
+
+- (void)disconnect {
+ [self doesNotRecognizeSelector:_cmd];
+}
+
+- (void)sendData:(NSData *)dataToSend {
+ [self doesNotRecognizeSelector:_cmd];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAddCommand.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAddCommand.h
new file mode 100644
index 000000000..aa0ab24d7
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAddCommand.h
@@ -0,0 +1,21 @@
+// SDLAddCommand.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+#import "SDLMenuParams.h"
+#import "SDLImage.h"
+
+@interface SDLAddCommand : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* cmdID;
+@property(strong) SDLMenuParams* menuParams;
+@property(strong) NSMutableArray* vrCommands;
+@property(strong) SDLImage* cmdIcon;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAddCommand.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAddCommand.m
new file mode 100644
index 000000000..6282f7cc5
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAddCommand.m
@@ -0,0 +1,79 @@
+// SDLAddCommand.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLAddCommand.h"
+
+#import "SDLNames.h"
+
+@implementation SDLAddCommand
+
+-(id) init {
+ if (self = [super initWithName:NAMES_AddCommand]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setCmdID:(NSNumber*) cmdID {
+ if (cmdID != nil) {
+ [parameters setObject:cmdID forKey:NAMES_cmdID];
+ } else {
+ [parameters removeObjectForKey:NAMES_cmdID];
+ }
+}
+
+-(NSNumber*) cmdID {
+ return [parameters objectForKey:NAMES_cmdID];
+}
+
+-(void) setMenuParams:(SDLMenuParams*) menuParams {
+ if (menuParams != nil) {
+ [parameters setObject:menuParams forKey:NAMES_menuParams];
+ } else {
+ [parameters removeObjectForKey:NAMES_menuParams];
+ }
+}
+
+-(SDLMenuParams*) menuParams {
+ NSObject* obj = [parameters objectForKey:NAMES_menuParams];
+ if ([obj isKindOfClass:SDLMenuParams.class]) {
+ return (SDLMenuParams*)obj;
+ } else {
+ return [[SDLMenuParams alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setVrCommands:(NSMutableArray*) vrCommands {
+ if (vrCommands != nil) {
+ [parameters setObject:vrCommands forKey:NAMES_vrCommands];
+ } else {
+ [parameters removeObjectForKey:NAMES_vrCommands];
+ }
+}
+
+-(NSMutableArray*) vrCommands {
+ return [parameters objectForKey:NAMES_vrCommands];
+}
+
+-(void) setCmdIcon:(SDLImage*) cmdIcon {
+ if (cmdIcon != nil) {
+ [parameters setObject:cmdIcon forKey:NAMES_cmdIcon];
+ } else {
+ [parameters removeObjectForKey:NAMES_cmdIcon];
+ }
+}
+
+-(SDLImage*) cmdIcon {
+ NSObject* obj = [parameters objectForKey:NAMES_cmdIcon];
+ if ([obj isKindOfClass:SDLImage.class]) {
+ return (SDLImage*)obj;
+ } else {
+ return [[SDLImage alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAddCommandResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAddCommandResponse.h
new file mode 100644
index 000000000..5d15de12b
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAddCommandResponse.h
@@ -0,0 +1,13 @@
+// SDLAddCommandResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLAddCommandResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAddCommandResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAddCommandResponse.m
new file mode 100644
index 000000000..70f74def0
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAddCommandResponse.m
@@ -0,0 +1,21 @@
+// SDLAddCommandResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLAddCommandResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLAddCommandResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_AddCommand]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAddSubMenu.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAddSubMenu.h
new file mode 100644
index 000000000..b23d27e08
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAddSubMenu.h
@@ -0,0 +1,17 @@
+// SDLAddSubMenu.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLAddSubMenu : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* menuID;
+@property(strong) NSNumber* position;
+@property(strong) NSString* menuName;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAddSubMenu.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAddSubMenu.m
new file mode 100644
index 000000000..87d47a1cb
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAddSubMenu.m
@@ -0,0 +1,57 @@
+// SDLAddSubMenu.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLAddSubMenu.h"
+
+#import "SDLNames.h"
+
+@implementation SDLAddSubMenu
+
+-(id) init {
+ if (self = [super initWithName:NAMES_AddSubMenu]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setMenuID:(NSNumber*) menuID {
+ if (menuID != nil) {
+ [parameters setObject:menuID forKey:NAMES_menuID];
+ } else {
+ [parameters removeObjectForKey:NAMES_menuID];
+ }
+}
+
+-(NSNumber*) menuID {
+ return [parameters objectForKey:NAMES_menuID];
+}
+
+-(void) setPosition:(NSNumber*) position {
+ if (position != nil) {
+ [parameters setObject:position forKey:NAMES_position];
+ } else {
+ [parameters removeObjectForKey:NAMES_position];
+ }
+}
+
+-(NSNumber*) position {
+ return [parameters objectForKey:NAMES_position];
+}
+
+-(void) setMenuName:(NSString*) menuName {
+ if (menuName != nil) {
+ [parameters setObject:menuName forKey:NAMES_menuName];
+ } else {
+ [parameters removeObjectForKey:NAMES_menuName];
+ }
+}
+
+-(NSString*) menuName {
+ return [parameters objectForKey:NAMES_menuName];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAddSubMenuResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAddSubMenuResponse.h
new file mode 100644
index 000000000..c74f3ca0f
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAddSubMenuResponse.h
@@ -0,0 +1,13 @@
+// SDLAddSubMenuResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLAddSubMenuResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAddSubMenuResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAddSubMenuResponse.m
new file mode 100644
index 000000000..7fb09852e
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAddSubMenuResponse.m
@@ -0,0 +1,21 @@
+// SDLAddSubMenuResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLAddSubMenuResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLAddSubMenuResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_AddSubMenu]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAirbagStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAirbagStatus.h
new file mode 100644
index 000000000..d0cf2ee7b
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAirbagStatus.h
@@ -0,0 +1,24 @@
+// SDLAirbagStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLVehicleDataEventStatus.h"
+
+@interface SDLAirbagStatus : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLVehicleDataEventStatus* driverAirbagDeployed;
+@property(strong) SDLVehicleDataEventStatus* driverSideAirbagDeployed;
+@property(strong) SDLVehicleDataEventStatus* driverCurtainAirbagDeployed;
+@property(strong) SDLVehicleDataEventStatus* passengerAirbagDeployed;
+@property(strong) SDLVehicleDataEventStatus* passengerCurtainAirbagDeployed;
+@property(strong) SDLVehicleDataEventStatus* driverKneeAirbagDeployed;
+@property(strong) SDLVehicleDataEventStatus* passengerSideAirbagDeployed;
+@property(strong) SDLVehicleDataEventStatus* passengerKneeAirbagDeployed;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAirbagStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAirbagStatus.m
new file mode 100644
index 000000000..9a1b2f3ae
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAirbagStatus.m
@@ -0,0 +1,157 @@
+// SDLAirbagStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLAirbagStatus.h"
+
+#import "SDLNames.h"
+
+@implementation SDLAirbagStatus
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setDriverAirbagDeployed:(SDLVehicleDataEventStatus*) driverAirbagDeployed {
+ if (driverAirbagDeployed != nil) {
+ [store setObject:driverAirbagDeployed forKey:NAMES_driverAirbagDeployed];
+ } else {
+ [store removeObjectForKey:NAMES_driverAirbagDeployed];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) driverAirbagDeployed {
+ NSObject* obj = [store objectForKey:NAMES_driverAirbagDeployed];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setDriverSideAirbagDeployed:(SDLVehicleDataEventStatus*) driverSideAirbagDeployed {
+ if (driverSideAirbagDeployed != nil) {
+ [store setObject:driverSideAirbagDeployed forKey:NAMES_driverSideAirbagDeployed];
+ } else {
+ [store removeObjectForKey:NAMES_driverSideAirbagDeployed];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) driverSideAirbagDeployed {
+ NSObject* obj = [store objectForKey:NAMES_driverSideAirbagDeployed];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setDriverCurtainAirbagDeployed:(SDLVehicleDataEventStatus*) driverCurtainAirbagDeployed {
+ if (driverCurtainAirbagDeployed != nil) {
+ [store setObject:driverCurtainAirbagDeployed forKey:NAMES_driverCurtainAirbagDeployed];
+ } else {
+ [store removeObjectForKey:NAMES_driverCurtainAirbagDeployed];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) driverCurtainAirbagDeployed {
+ NSObject* obj = [store objectForKey:NAMES_driverCurtainAirbagDeployed];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setPassengerAirbagDeployed:(SDLVehicleDataEventStatus*) passengerAirbagDeployed {
+ if (passengerAirbagDeployed != nil) {
+ [store setObject:passengerAirbagDeployed forKey:NAMES_passengerAirbagDeployed];
+ } else {
+ [store removeObjectForKey:NAMES_passengerAirbagDeployed];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) passengerAirbagDeployed {
+ NSObject* obj = [store objectForKey:NAMES_passengerAirbagDeployed];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setPassengerCurtainAirbagDeployed:(SDLVehicleDataEventStatus*) passengerCurtainAirbagDeployed {
+ if (passengerCurtainAirbagDeployed != nil) {
+ [store setObject:passengerCurtainAirbagDeployed forKey:NAMES_passengerCurtainAirbagDeployed];
+ } else {
+ [store removeObjectForKey:NAMES_passengerCurtainAirbagDeployed];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) passengerCurtainAirbagDeployed {
+ NSObject* obj = [store objectForKey:NAMES_passengerCurtainAirbagDeployed];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setDriverKneeAirbagDeployed:(SDLVehicleDataEventStatus*) driverKneeAirbagDeployed {
+ if (driverKneeAirbagDeployed != nil) {
+ [store setObject:driverKneeAirbagDeployed forKey:NAMES_driverKneeAirbagDeployed];
+ } else {
+ [store removeObjectForKey:NAMES_driverKneeAirbagDeployed];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) driverKneeAirbagDeployed {
+ NSObject* obj = [store objectForKey:NAMES_driverKneeAirbagDeployed];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setPassengerSideAirbagDeployed:(SDLVehicleDataEventStatus*) passengerSideAirbagDeployed {
+ if (passengerSideAirbagDeployed != nil) {
+ [store setObject:passengerSideAirbagDeployed forKey:NAMES_passengerSideAirbagDeployed];
+ } else {
+ [store removeObjectForKey:NAMES_passengerSideAirbagDeployed];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) passengerSideAirbagDeployed {
+ NSObject* obj = [store objectForKey:NAMES_passengerSideAirbagDeployed];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setPassengerKneeAirbagDeployed:(SDLVehicleDataEventStatus*) passengerKneeAirbagDeployed {
+ if (passengerKneeAirbagDeployed != nil) {
+ [store setObject:passengerKneeAirbagDeployed forKey:NAMES_passengerKneeAirbagDeployed];
+ } else {
+ [store removeObjectForKey:NAMES_passengerKneeAirbagDeployed];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) passengerKneeAirbagDeployed {
+ NSObject* obj = [store objectForKey:NAMES_passengerKneeAirbagDeployed];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAlert.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAlert.h
new file mode 100644
index 000000000..39c5d43f7
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAlert.h
@@ -0,0 +1,22 @@
+// SDLAlert.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLAlert : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSString* alertText1;
+@property(strong) NSString* alertText2;
+@property(strong) NSString* alertText3;
+@property(strong) NSMutableArray* ttsChunks;
+@property(strong) NSNumber* duration;
+@property(strong) NSNumber* playTone;
+@property(strong) NSNumber* progressIndicator;
+@property(strong) NSMutableArray* softButtons;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAlert.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAlert.m
new file mode 100644
index 000000000..a8121fb01
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAlert.m
@@ -0,0 +1,137 @@
+// SDLAlert.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLAlert.h"
+
+#import "SDLNames.h"
+#import "SDLTTSChunk.h"
+#import "SDLSoftButton.h"
+
+@implementation SDLAlert
+
+-(id) init {
+ if (self = [super initWithName:NAMES_Alert]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setAlertText1:(NSString*) alertText1 {
+ if (alertText1 != nil) {
+ [parameters setObject:alertText1 forKey:NAMES_alertText1];
+ } else {
+ [parameters removeObjectForKey:NAMES_alertText1];
+ }
+}
+
+-(NSString*) alertText1 {
+ return [parameters objectForKey:NAMES_alertText1];
+}
+
+-(void) setAlertText2:(NSString*) alertText2 {
+ if (alertText2 != nil) {
+ [parameters setObject:alertText2 forKey:NAMES_alertText2];
+ } else {
+ [parameters removeObjectForKey:NAMES_alertText2];
+ }
+}
+
+-(NSString*) alertText2 {
+ return [parameters objectForKey:NAMES_alertText2];
+}
+
+-(void) setAlertText3:(NSString*) alertText3 {
+ if (alertText3 != nil) {
+ [parameters setObject:alertText3 forKey:NAMES_alertText3];
+ } else {
+ [parameters removeObjectForKey:NAMES_alertText3];
+ }
+}
+
+-(NSString*) alertText3 {
+ return [parameters objectForKey:NAMES_alertText3];
+}
+
+-(void) setTtsChunks:(NSMutableArray*) ttsChunks {
+ if (ttsChunks != nil) {
+ [parameters setObject:ttsChunks forKey:NAMES_ttsChunks];
+ } else {
+ [parameters removeObjectForKey:NAMES_ttsChunks];
+ }
+}
+
+-(NSMutableArray*) ttsChunks {
+ NSMutableArray* array = [parameters objectForKey:NAMES_ttsChunks];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLTTSChunk.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLTTSChunk alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+-(void) setDuration:(NSNumber*) duration {
+ if (duration != nil) {
+ [parameters setObject:duration forKey:NAMES_duration];
+ } else {
+ [parameters removeObjectForKey:NAMES_duration];
+ }
+}
+
+-(NSNumber*) duration {
+ return [parameters objectForKey:NAMES_duration];
+}
+
+-(void) setPlayTone:(NSNumber*) playTone {
+ if (playTone != nil) {
+ [parameters setObject:playTone forKey:NAMES_playTone];
+ } else {
+ [parameters removeObjectForKey:NAMES_playTone];
+ }
+}
+
+-(NSNumber*) playTone {
+ return [parameters objectForKey:NAMES_playTone];
+}
+
+-(void) setProgressIndicator:(NSNumber*) progressIndicator {
+ if (progressIndicator != nil) {
+ [parameters setObject:progressIndicator forKey:NAMES_progressIndicator];
+ } else {
+ [parameters removeObjectForKey:NAMES_progressIndicator];
+ }
+}
+
+-(NSNumber*) progressIndicator {
+ return [parameters objectForKey:NAMES_progressIndicator];
+}
+
+-(void) setSoftButtons:(NSMutableArray*) softButtons {
+ if (softButtons != nil) {
+ [parameters setObject:softButtons forKey:NAMES_softButtons];
+ } else {
+ [parameters removeObjectForKey:NAMES_softButtons];
+ }
+}
+
+-(NSMutableArray*) softButtons {
+ NSMutableArray* array = [parameters objectForKey:NAMES_softButtons];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLSoftButton.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLSoftButton alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAlertManeuver.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAlertManeuver.h
new file mode 100644
index 000000000..536bb2caf
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAlertManeuver.h
@@ -0,0 +1,16 @@
+// SDLAlertManeuver.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLAlertManeuver : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSMutableArray* ttsChunks;
+@property(strong) NSMutableArray* softButtons;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAlertManeuver.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAlertManeuver.m
new file mode 100644
index 000000000..c7c61ce36
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAlertManeuver.m
@@ -0,0 +1,65 @@
+// SDLAlertManeuver.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLAlertManeuver.h"
+
+#import "SDLNames.h"
+#import "SDLTTSChunk.h"
+#import "SDLSoftButton.h"
+
+@implementation SDLAlertManeuver
+
+-(id) init {
+ if (self = [super initWithName:NAMES_AlertManeuver]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setTtsChunks:(NSMutableArray*) ttsChunks {
+ if (ttsChunks != nil) {
+ [parameters setObject:ttsChunks forKey:NAMES_ttsChunks];
+ } else {
+ [parameters removeObjectForKey:NAMES_ttsChunks];
+ }
+}
+
+-(NSMutableArray*) ttsChunks {
+ NSMutableArray* array = [parameters objectForKey:NAMES_ttsChunks];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLTTSChunk.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLTTSChunk alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+-(void) setSoftButtons:(NSMutableArray*) softButtons {
+ if (softButtons != nil) {
+ [parameters setObject:softButtons forKey:NAMES_softButtons];
+ } else {
+ [parameters removeObjectForKey:NAMES_softButtons];
+ }
+}
+
+-(NSMutableArray*) softButtons {
+ NSMutableArray* array = [parameters objectForKey:NAMES_softButtons];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLSoftButton.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLSoftButton alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAlertManeuverResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAlertManeuverResponse.h
new file mode 100644
index 000000000..9f560a396
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAlertManeuverResponse.h
@@ -0,0 +1,13 @@
+// SDLAlertManeuverResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLAlertManeuverResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAlertManeuverResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAlertManeuverResponse.m
new file mode 100644
index 000000000..3c820df6d
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAlertManeuverResponse.m
@@ -0,0 +1,21 @@
+// SDLAlertManeuverResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLAlertManeuverResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLAlertManeuverResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_AlertManeuver]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAlertResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAlertResponse.h
new file mode 100644
index 000000000..d0884789e
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAlertResponse.h
@@ -0,0 +1,15 @@
+// SDLAlertResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLAlertResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* tryAgainTime;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAlertResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAlertResponse.m
new file mode 100644
index 000000000..98f7ea30a
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAlertResponse.m
@@ -0,0 +1,33 @@
+// SDLAlertResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLAlertResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLAlertResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_Alert]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setTryAgainTime:(NSNumber*) tryAgainTime {
+ if (tryAgainTime != nil) {
+ [parameters setObject:tryAgainTime forKey:NAMES_tryAgainTime];
+ } else {
+ [parameters removeObjectForKey:NAMES_tryAgainTime];
+ }
+}
+
+-(NSNumber*) tryAgainTime {
+ return [parameters objectForKey:NAMES_tryAgainTime];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAmbientLightStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAmbientLightStatus.h
new file mode 100644
index 000000000..85b8df73a
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAmbientLightStatus.h
@@ -0,0 +1,22 @@
+// SDLAmbientLightStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLAmbientLightStatus : SDLEnum {}
+
++(SDLAmbientLightStatus*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLAmbientLightStatus*) NIGHT;
++(SDLAmbientLightStatus*) TWILIGHT_1;
++(SDLAmbientLightStatus*) TWILIGHT_2;
++(SDLAmbientLightStatus*) TWILIGHT_3;
++(SDLAmbientLightStatus*) TWILIGHT_4;
++(SDLAmbientLightStatus*) DAY;
++(SDLAmbientLightStatus*) UNKNOWN;
++(SDLAmbientLightStatus*) INVALID;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAmbientLightStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAmbientLightStatus.m
new file mode 100644
index 000000000..886f46f64
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAmbientLightStatus.m
@@ -0,0 +1,101 @@
+// SDLAmbientLightStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLAmbientLightStatus.h"
+
+SDLAmbientLightStatus* SDLAmbientLightStatus_NIGHT = nil;
+SDLAmbientLightStatus* SDLAmbientLightStatus_TWILIGHT_1 = nil;
+SDLAmbientLightStatus* SDLAmbientLightStatus_TWILIGHT_2 = nil;
+SDLAmbientLightStatus* SDLAmbientLightStatus_TWILIGHT_3 = nil;
+SDLAmbientLightStatus* SDLAmbientLightStatus_TWILIGHT_4 = nil;
+SDLAmbientLightStatus* SDLAmbientLightStatus_DAY = nil;
+SDLAmbientLightStatus* SDLAmbientLightStatus_UNKNOWN = nil;
+SDLAmbientLightStatus* SDLAmbientLightStatus_INVALID = nil;
+
+NSMutableArray* SDLAmbientLightStatus_values = nil;
+
+@implementation SDLAmbientLightStatus
+
++(SDLAmbientLightStatus*) valueOf:(NSString*) value {
+ for (SDLAmbientLightStatus* item in SDLAmbientLightStatus.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLAmbientLightStatus_values == nil) {
+ SDLAmbientLightStatus_values = [[NSMutableArray alloc] initWithObjects:
+ SDLAmbientLightStatus.NIGHT,
+ SDLAmbientLightStatus.TWILIGHT_1,
+ SDLAmbientLightStatus.TWILIGHT_2,
+ SDLAmbientLightStatus.TWILIGHT_3,
+ SDLAmbientLightStatus.TWILIGHT_4,
+ SDLAmbientLightStatus.DAY,
+ SDLAmbientLightStatus.UNKNOWN,
+ SDLAmbientLightStatus.INVALID,
+ nil];
+ }
+ return SDLAmbientLightStatus_values;
+}
+
++(SDLAmbientLightStatus*) NIGHT {
+ if (SDLAmbientLightStatus_NIGHT == nil) {
+ SDLAmbientLightStatus_NIGHT = [[SDLAmbientLightStatus alloc] initWithValue:@"NIGHT"];
+ }
+ return SDLAmbientLightStatus_NIGHT;
+}
+
++(SDLAmbientLightStatus*) TWILIGHT_1 {
+ if (SDLAmbientLightStatus_TWILIGHT_1 == nil) {
+ SDLAmbientLightStatus_TWILIGHT_1 = [[SDLAmbientLightStatus alloc] initWithValue:@"TWILIGHT_1"];
+ }
+ return SDLAmbientLightStatus_TWILIGHT_1;
+}
+
++(SDLAmbientLightStatus*) TWILIGHT_2 {
+ if (SDLAmbientLightStatus_TWILIGHT_2 == nil) {
+ SDLAmbientLightStatus_TWILIGHT_2 = [[SDLAmbientLightStatus alloc] initWithValue:@"TWILIGHT_2"];
+ }
+ return SDLAmbientLightStatus_TWILIGHT_2;
+}
+
++(SDLAmbientLightStatus*) TWILIGHT_3 {
+ if (SDLAmbientLightStatus_TWILIGHT_3 == nil) {
+ SDLAmbientLightStatus_TWILIGHT_3 = [[SDLAmbientLightStatus alloc] initWithValue:@"TWILIGHT_3"];
+ }
+ return SDLAmbientLightStatus_TWILIGHT_3;
+}
+
++(SDLAmbientLightStatus*) TWILIGHT_4 {
+ if (SDLAmbientLightStatus_TWILIGHT_4 == nil) {
+ SDLAmbientLightStatus_TWILIGHT_4 = [[SDLAmbientLightStatus alloc] initWithValue:@"TWILIGHT_4"];
+ }
+ return SDLAmbientLightStatus_TWILIGHT_4;
+}
+
++(SDLAmbientLightStatus*) DAY {
+ if (SDLAmbientLightStatus_DAY == nil) {
+ SDLAmbientLightStatus_DAY = [[SDLAmbientLightStatus alloc] initWithValue:@"DAY"];
+ }
+ return SDLAmbientLightStatus_DAY;
+}
+
++(SDLAmbientLightStatus*) UNKNOWN {
+ if (SDLAmbientLightStatus_UNKNOWN == nil) {
+ SDLAmbientLightStatus_UNKNOWN = [[SDLAmbientLightStatus alloc] initWithValue:@"UNKNOWN"];
+ }
+ return SDLAmbientLightStatus_UNKNOWN;
+}
+
++(SDLAmbientLightStatus*) INVALID {
+ if (SDLAmbientLightStatus_INVALID == nil) {
+ SDLAmbientLightStatus_INVALID = [[SDLAmbientLightStatus alloc] initWithValue:@"INVALID"];
+ }
+ return SDLAmbientLightStatus_INVALID;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAppHMIType.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAppHMIType.h
new file mode 100644
index 000000000..bd75eaf2d
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAppHMIType.h
@@ -0,0 +1,24 @@
+// SDLAppHMIType.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLAppHMIType : SDLEnum {}
+
++(SDLAppHMIType*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLAppHMIType*) DEFAULT;
++(SDLAppHMIType*) COMMUNICATION;
++(SDLAppHMIType*) MEDIA;
++(SDLAppHMIType*) MESSAGING;
++(SDLAppHMIType*) NAVIGATION;
++(SDLAppHMIType*) INFORMATION;
++(SDLAppHMIType*) SOCIAL;
++(SDLAppHMIType*) BACKGROUND_PROCESS;
++(SDLAppHMIType*) TESTING;
++(SDLAppHMIType*) SYSTEM;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAppHMIType.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAppHMIType.m
new file mode 100644
index 000000000..a8476a83f
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAppHMIType.m
@@ -0,0 +1,119 @@
+// SDLAppHMIType.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLAppHMIType.h"
+
+SDLAppHMIType* SDLAppHMIType_DEFAULT = nil;
+SDLAppHMIType* SDLAppHMIType_COMMUNICATION = nil;
+SDLAppHMIType* SDLAppHMIType_MEDIA = nil;
+SDLAppHMIType* SDLAppHMIType_MESSAGING = nil;
+SDLAppHMIType* SDLAppHMIType_NAVIGATION = nil;
+SDLAppHMIType* SDLAppHMIType_INFORMATION = nil;
+SDLAppHMIType* SDLAppHMIType_SOCIAL = nil;
+SDLAppHMIType* SDLAppHMIType_BACKGROUND_PROCESS = nil;
+SDLAppHMIType* SDLAppHMIType_TESTING = nil;
+SDLAppHMIType* SDLAppHMIType_SYSTEM = nil;
+
+NSMutableArray* SDLAppHMIType_values = nil;
+
+@implementation SDLAppHMIType
+
++(SDLAppHMIType*) valueOf:(NSString*) value {
+ for (SDLAppHMIType* item in SDLAppHMIType.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLAppHMIType_values == nil) {
+ SDLAppHMIType_values = [[NSMutableArray alloc] initWithObjects:
+ SDLAppHMIType.DEFAULT,
+ SDLAppHMIType.COMMUNICATION,
+ SDLAppHMIType.MEDIA,
+ SDLAppHMIType.MESSAGING,
+ SDLAppHMIType.NAVIGATION,
+ SDLAppHMIType.INFORMATION,
+ SDLAppHMIType.SOCIAL,
+ SDLAppHMIType.BACKGROUND_PROCESS,
+ SDLAppHMIType.TESTING,
+ SDLAppHMIType.SYSTEM,
+ nil];
+ }
+ return SDLAppHMIType_values;
+}
+
++(SDLAppHMIType*) DEFAULT {
+ if (SDLAppHMIType_DEFAULT == nil) {
+ SDLAppHMIType_DEFAULT = [[SDLAppHMIType alloc] initWithValue:@"DEFAULT"];
+ }
+ return SDLAppHMIType_DEFAULT;
+}
+
++(SDLAppHMIType*) COMMUNICATION {
+ if (SDLAppHMIType_COMMUNICATION == nil) {
+ SDLAppHMIType_COMMUNICATION = [[SDLAppHMIType alloc] initWithValue:@"COMMUNICATION"];
+ }
+ return SDLAppHMIType_COMMUNICATION;
+}
+
++(SDLAppHMIType*) MEDIA {
+ if (SDLAppHMIType_MEDIA == nil) {
+ SDLAppHMIType_MEDIA = [[SDLAppHMIType alloc] initWithValue:@"MEDIA"];
+ }
+ return SDLAppHMIType_MEDIA;
+}
+
++(SDLAppHMIType*) MESSAGING {
+ if (SDLAppHMIType_MESSAGING == nil) {
+ SDLAppHMIType_MESSAGING = [[SDLAppHMIType alloc] initWithValue:@"MESSAGING"];
+ }
+ return SDLAppHMIType_MESSAGING;
+}
+
++(SDLAppHMIType*) NAVIGATION {
+ if (SDLAppHMIType_NAVIGATION == nil) {
+ SDLAppHMIType_NAVIGATION = [[SDLAppHMIType alloc] initWithValue:@"NAVIGATION"];
+ }
+ return SDLAppHMIType_NAVIGATION;
+}
+
++(SDLAppHMIType*) INFORMATION {
+ if (SDLAppHMIType_INFORMATION == nil) {
+ SDLAppHMIType_INFORMATION = [[SDLAppHMIType alloc] initWithValue:@"INFORMATION"];
+ }
+ return SDLAppHMIType_INFORMATION;
+}
+
++(SDLAppHMIType*) SOCIAL {
+ if (SDLAppHMIType_SOCIAL == nil) {
+ SDLAppHMIType_SOCIAL = [[SDLAppHMIType alloc] initWithValue:@"SOCIAL"];
+ }
+ return SDLAppHMIType_SOCIAL;
+}
+
++(SDLAppHMIType*) BACKGROUND_PROCESS {
+ if (SDLAppHMIType_BACKGROUND_PROCESS == nil) {
+ SDLAppHMIType_BACKGROUND_PROCESS = [[SDLAppHMIType alloc] initWithValue:@"BACKGROUND_PROCESS"];
+ }
+ return SDLAppHMIType_BACKGROUND_PROCESS;
+}
+
++(SDLAppHMIType*) TESTING {
+ if (SDLAppHMIType_TESTING == nil) {
+ SDLAppHMIType_TESTING = [[SDLAppHMIType alloc] initWithValue:@"TESTING"];
+ }
+ return SDLAppHMIType_TESTING;
+}
+
++(SDLAppHMIType*) SYSTEM {
+ if (SDLAppHMIType_SYSTEM == nil) {
+ SDLAppHMIType_SYSTEM = [[SDLAppHMIType alloc] initWithValue:@"SYSTEM"];
+ }
+ return SDLAppHMIType_SYSTEM;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h
new file mode 100644
index 000000000..6322d37f4
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h
@@ -0,0 +1,24 @@
+// SDLAppInterfaceUnregisteredReason.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLAppInterfaceUnregisteredReason : SDLEnum {}
+
++(SDLAppInterfaceUnregisteredReason*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLAppInterfaceUnregisteredReason*) IGNITION_OFF;
++(SDLAppInterfaceUnregisteredReason*) BLUETOOTH_OFF;
++(SDLAppInterfaceUnregisteredReason*) USB_DISCONNECTED;
++(SDLAppInterfaceUnregisteredReason*) REQUEST_WHILE_IN_NONE_HMI_LEVEL;
++(SDLAppInterfaceUnregisteredReason*) TOO_MANY_REQUESTS;
++(SDLAppInterfaceUnregisteredReason*) DRIVER_DISTRACTION_VIOLATION;
++(SDLAppInterfaceUnregisteredReason*) LANGUAGE_CHANGE;
++(SDLAppInterfaceUnregisteredReason*) MASTER_RESET;
++(SDLAppInterfaceUnregisteredReason*) FACTORY_DEFAULTS;
++(SDLAppInterfaceUnregisteredReason*) APP_UNAUTHORIZED;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m
new file mode 100644
index 000000000..c13e4a9d4
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m
@@ -0,0 +1,119 @@
+// SDLAppInterfaceUnregisteredReason.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLAppInterfaceUnregisteredReason.h"
+
+SDLAppInterfaceUnregisteredReason* SDLAppInterfaceUnregisteredReason_IGNITION_OFF = nil;
+SDLAppInterfaceUnregisteredReason* SDLAppInterfaceUnregisteredReason_BLUETOOTH_OFF = nil;
+SDLAppInterfaceUnregisteredReason* SDLAppInterfaceUnregisteredReason_USB_DISCONNECTED = nil;
+SDLAppInterfaceUnregisteredReason* SDLAppInterfaceUnregisteredReason_REQUEST_WHILE_IN_NONE_HMI_LEVEL = nil;
+SDLAppInterfaceUnregisteredReason* SDLAppInterfaceUnregisteredReason_TOO_MANY_REQUESTS = nil;
+SDLAppInterfaceUnregisteredReason* SDLAppInterfaceUnregisteredReason_DRIVER_DISTRACTION_VIOLATION = nil;
+SDLAppInterfaceUnregisteredReason* SDLAppInterfaceUnregisteredReason_LANGUAGE_CHANGE = nil;
+SDLAppInterfaceUnregisteredReason* SDLAppInterfaceUnregisteredReason_MASTER_RESET = nil;
+SDLAppInterfaceUnregisteredReason* SDLAppInterfaceUnregisteredReason_FACTORY_DEFAULTS = nil;
+SDLAppInterfaceUnregisteredReason* SDLAppInterfaceUnregisteredReason_APP_UNAUTHORIZED = nil;
+
+NSMutableArray* SDLAppInterfaceUnregisteredReason_values = nil;
+
+@implementation SDLAppInterfaceUnregisteredReason
+
++(SDLAppInterfaceUnregisteredReason*) valueOf:(NSString*) value {
+ for (SDLAppInterfaceUnregisteredReason* item in SDLAppInterfaceUnregisteredReason.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLAppInterfaceUnregisteredReason_values == nil) {
+ SDLAppInterfaceUnregisteredReason_values = [[NSMutableArray alloc] initWithObjects:
+ SDLAppInterfaceUnregisteredReason.IGNITION_OFF,
+ SDLAppInterfaceUnregisteredReason.BLUETOOTH_OFF,
+ SDLAppInterfaceUnregisteredReason.USB_DISCONNECTED,
+ SDLAppInterfaceUnregisteredReason.REQUEST_WHILE_IN_NONE_HMI_LEVEL,
+ SDLAppInterfaceUnregisteredReason.TOO_MANY_REQUESTS,
+ SDLAppInterfaceUnregisteredReason.DRIVER_DISTRACTION_VIOLATION,
+ SDLAppInterfaceUnregisteredReason.LANGUAGE_CHANGE,
+ SDLAppInterfaceUnregisteredReason.MASTER_RESET,
+ SDLAppInterfaceUnregisteredReason.FACTORY_DEFAULTS,
+ SDLAppInterfaceUnregisteredReason.APP_UNAUTHORIZED,
+ nil];
+ }
+ return SDLAppInterfaceUnregisteredReason_values;
+}
+
++(SDLAppInterfaceUnregisteredReason*) IGNITION_OFF {
+ if (SDLAppInterfaceUnregisteredReason_IGNITION_OFF == nil) {
+ SDLAppInterfaceUnregisteredReason_IGNITION_OFF = [[SDLAppInterfaceUnregisteredReason alloc] initWithValue:@"IGNITION_OFF"];
+ }
+ return SDLAppInterfaceUnregisteredReason_IGNITION_OFF;
+}
+
++(SDLAppInterfaceUnregisteredReason*) BLUETOOTH_OFF {
+ if (SDLAppInterfaceUnregisteredReason_BLUETOOTH_OFF == nil) {
+ SDLAppInterfaceUnregisteredReason_BLUETOOTH_OFF = [[SDLAppInterfaceUnregisteredReason alloc] initWithValue:@"BLUETOOTH_OFF"];
+ }
+ return SDLAppInterfaceUnregisteredReason_BLUETOOTH_OFF;
+}
+
++(SDLAppInterfaceUnregisteredReason*) USB_DISCONNECTED {
+ if (SDLAppInterfaceUnregisteredReason_USB_DISCONNECTED == nil) {
+ SDLAppInterfaceUnregisteredReason_USB_DISCONNECTED = [[SDLAppInterfaceUnregisteredReason alloc] initWithValue:@"USB_DISCONNECTED"];
+ }
+ return SDLAppInterfaceUnregisteredReason_USB_DISCONNECTED;
+}
+
++(SDLAppInterfaceUnregisteredReason*) REQUEST_WHILE_IN_NONE_HMI_LEVEL {
+ if (SDLAppInterfaceUnregisteredReason_REQUEST_WHILE_IN_NONE_HMI_LEVEL == nil) {
+ SDLAppInterfaceUnregisteredReason_REQUEST_WHILE_IN_NONE_HMI_LEVEL = [[SDLAppInterfaceUnregisteredReason alloc] initWithValue:@"REQUEST_WHILE_IN_NONE_HMI_LEVEL"];
+ }
+ return SDLAppInterfaceUnregisteredReason_REQUEST_WHILE_IN_NONE_HMI_LEVEL;
+}
+
++(SDLAppInterfaceUnregisteredReason*) TOO_MANY_REQUESTS {
+ if (SDLAppInterfaceUnregisteredReason_TOO_MANY_REQUESTS == nil) {
+ SDLAppInterfaceUnregisteredReason_TOO_MANY_REQUESTS = [[SDLAppInterfaceUnregisteredReason alloc] initWithValue:@"TOO_MANY_REQUESTS"];
+ }
+ return SDLAppInterfaceUnregisteredReason_TOO_MANY_REQUESTS;
+}
+
++(SDLAppInterfaceUnregisteredReason*) DRIVER_DISTRACTION_VIOLATION {
+ if (SDLAppInterfaceUnregisteredReason_DRIVER_DISTRACTION_VIOLATION == nil) {
+ SDLAppInterfaceUnregisteredReason_DRIVER_DISTRACTION_VIOLATION = [[SDLAppInterfaceUnregisteredReason alloc] initWithValue:@"DRIVER_DISTRACTION_VIOLATION"];
+ }
+ return SDLAppInterfaceUnregisteredReason_DRIVER_DISTRACTION_VIOLATION;
+}
+
++(SDLAppInterfaceUnregisteredReason*) LANGUAGE_CHANGE {
+ if (SDLAppInterfaceUnregisteredReason_LANGUAGE_CHANGE == nil) {
+ SDLAppInterfaceUnregisteredReason_LANGUAGE_CHANGE = [[SDLAppInterfaceUnregisteredReason alloc] initWithValue:@"LANGUAGE_CHANGE"];
+ }
+ return SDLAppInterfaceUnregisteredReason_LANGUAGE_CHANGE;
+}
+
++(SDLAppInterfaceUnregisteredReason*) MASTER_RESET {
+ if (SDLAppInterfaceUnregisteredReason_MASTER_RESET == nil) {
+ SDLAppInterfaceUnregisteredReason_MASTER_RESET = [[SDLAppInterfaceUnregisteredReason alloc] initWithValue:@"MASTER_RESET"];
+ }
+ return SDLAppInterfaceUnregisteredReason_MASTER_RESET;
+}
+
++(SDLAppInterfaceUnregisteredReason*) FACTORY_DEFAULTS {
+ if (SDLAppInterfaceUnregisteredReason_FACTORY_DEFAULTS == nil) {
+ SDLAppInterfaceUnregisteredReason_FACTORY_DEFAULTS = [[SDLAppInterfaceUnregisteredReason alloc] initWithValue:@"FACTORY_DEFAULTS"];
+ }
+ return SDLAppInterfaceUnregisteredReason_FACTORY_DEFAULTS;
+}
+
++(SDLAppInterfaceUnregisteredReason*) APP_UNAUTHORIZED {
+ if (SDLAppInterfaceUnregisteredReason_APP_UNAUTHORIZED == nil) {
+ SDLAppInterfaceUnregisteredReason_APP_UNAUTHORIZED = [[SDLAppInterfaceUnregisteredReason alloc] initWithValue:@"APP_UNAUTHORIZED"];
+ }
+ return SDLAppInterfaceUnregisteredReason_APP_UNAUTHORIZED;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAudioPassThruCapabilities.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAudioPassThruCapabilities.h
new file mode 100644
index 000000000..7d3ae1a76
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAudioPassThruCapabilities.h
@@ -0,0 +1,21 @@
+// SDLAudioPassThruCapabilities.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLSamplingRate.h"
+#import "SDLBitsPerSample.h"
+#import "SDLAudioType.h"
+
+@interface SDLAudioPassThruCapabilities : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLSamplingRate* samplingRate;
+@property(strong) SDLBitsPerSample* bitsPerSample;
+@property(strong) SDLAudioType* audioType;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAudioPassThruCapabilities.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAudioPassThruCapabilities.m
new file mode 100644
index 000000000..6c2de7b9f
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAudioPassThruCapabilities.m
@@ -0,0 +1,72 @@
+// SDLAudioPassThruCapabilities.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLAudioPassThruCapabilities.h"
+
+#import "SDLNames.h"
+
+@implementation SDLAudioPassThruCapabilities
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setSamplingRate:(SDLSamplingRate*) samplingRate {
+ if (samplingRate != nil) {
+ [store setObject:samplingRate forKey:NAMES_samplingRate];
+ } else {
+ [store removeObjectForKey:NAMES_samplingRate];
+ }
+}
+
+-(SDLSamplingRate*) samplingRate {
+ NSObject* obj = [store objectForKey:NAMES_samplingRate];
+ if ([obj isKindOfClass:SDLSamplingRate.class]) {
+ return (SDLSamplingRate*)obj;
+ } else {
+ return [SDLSamplingRate valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setBitsPerSample:(SDLBitsPerSample*) bitsPerSample {
+ if (bitsPerSample != nil) {
+ [store setObject:bitsPerSample forKey:NAMES_bitsPerSample];
+ } else {
+ [store removeObjectForKey:NAMES_bitsPerSample];
+ }
+}
+
+-(SDLBitsPerSample*) bitsPerSample {
+ NSObject* obj = [store objectForKey:NAMES_bitsPerSample];
+ if ([obj isKindOfClass:SDLBitsPerSample.class]) {
+ return (SDLBitsPerSample*)obj;
+ } else {
+ return [SDLBitsPerSample valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setAudioType:(SDLAudioType*) audioType {
+ if (audioType != nil) {
+ [store setObject:audioType forKey:NAMES_audioType];
+ } else {
+ [store removeObjectForKey:NAMES_audioType];
+ }
+}
+
+-(SDLAudioType*) audioType {
+ NSObject* obj = [store objectForKey:NAMES_audioType];
+ if ([obj isKindOfClass:SDLAudioType.class]) {
+ return (SDLAudioType*)obj;
+ } else {
+ return [SDLAudioType valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAudioStreamingState.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAudioStreamingState.h
new file mode 100644
index 000000000..eacebfbe2
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAudioStreamingState.h
@@ -0,0 +1,17 @@
+// SDLAudioStreamingState.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLAudioStreamingState : SDLEnum {}
+
++(SDLAudioStreamingState*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLAudioStreamingState*) AUDIBLE;
++(SDLAudioStreamingState*) ATTENUATED;
++(SDLAudioStreamingState*) NOT_AUDIBLE;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAudioStreamingState.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAudioStreamingState.m
new file mode 100644
index 000000000..a93fff619
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAudioStreamingState.m
@@ -0,0 +1,56 @@
+// SDLAudioStreamingState.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLAudioStreamingState.h"
+
+SDLAudioStreamingState* SDLAudioStreamingState_AUDIBLE = nil;
+SDLAudioStreamingState* SDLAudioStreamingState_ATTENUATED = nil;
+SDLAudioStreamingState* SDLAudioStreamingState_NOT_AUDIBLE = nil;
+
+NSMutableArray* SDLAudioStreamingState_values = nil;
+
+@implementation SDLAudioStreamingState
+
++(SDLAudioStreamingState*) valueOf:(NSString*) value {
+ for (SDLAudioStreamingState* item in SDLAudioStreamingState.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLAudioStreamingState_values == nil) {
+ SDLAudioStreamingState_values = [[NSMutableArray alloc] initWithObjects:
+ SDLAudioStreamingState.AUDIBLE,
+ SDLAudioStreamingState.ATTENUATED,
+ SDLAudioStreamingState.NOT_AUDIBLE,
+ nil];
+ }
+ return SDLAudioStreamingState_values;
+}
+
++(SDLAudioStreamingState*) AUDIBLE {
+ if (SDLAudioStreamingState_AUDIBLE == nil) {
+ SDLAudioStreamingState_AUDIBLE = [[SDLAudioStreamingState alloc] initWithValue:@"AUDIBLE"];
+ }
+ return SDLAudioStreamingState_AUDIBLE;
+}
+
++(SDLAudioStreamingState*) ATTENUATED {
+ if (SDLAudioStreamingState_ATTENUATED == nil) {
+ SDLAudioStreamingState_ATTENUATED = [[SDLAudioStreamingState alloc] initWithValue:@"ATTENUATED"];
+ }
+ return SDLAudioStreamingState_ATTENUATED;
+}
+
++(SDLAudioStreamingState*) NOT_AUDIBLE {
+ if (SDLAudioStreamingState_NOT_AUDIBLE == nil) {
+ SDLAudioStreamingState_NOT_AUDIBLE = [[SDLAudioStreamingState alloc] initWithValue:@"NOT_AUDIBLE"];
+ }
+ return SDLAudioStreamingState_NOT_AUDIBLE;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAudioType.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAudioType.h
new file mode 100644
index 000000000..c847ddaff
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAudioType.h
@@ -0,0 +1,15 @@
+// SDLAudioType.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLAudioType : SDLEnum {}
+
++(SDLAudioType*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLAudioType*) PCM;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLAudioType.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAudioType.m
new file mode 100644
index 000000000..8be9bd9c0
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLAudioType.m
@@ -0,0 +1,38 @@
+// SDLAudioType.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLAudioType.h"
+
+SDLAudioType* SDLAudioType_PCM = nil;
+
+NSMutableArray* SDLAudioType_values = nil;
+
+@implementation SDLAudioType
+
++(SDLAudioType*) valueOf:(NSString*) value {
+ for (SDLAudioType* item in SDLAudioType.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLAudioType_values == nil) {
+ SDLAudioType_values = [[NSMutableArray alloc] initWithObjects:
+ SDLAudioType.PCM,
+ nil];
+ }
+ return SDLAudioType_values;
+}
+
++(SDLAudioType*) PCM {
+ if (SDLAudioType_PCM == nil) {
+ SDLAudioType_PCM = [[SDLAudioType alloc] initWithValue:@"PCM"];
+ }
+ return SDLAudioType_PCM;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLBeltStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLBeltStatus.h
new file mode 100644
index 000000000..4c216310f
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLBeltStatus.h
@@ -0,0 +1,31 @@
+// SDLBeltStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLVehicleDataEventStatus.h"
+
+@interface SDLBeltStatus : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLVehicleDataEventStatus* driverBeltDeployed;
+@property(strong) SDLVehicleDataEventStatus* passengerBeltDeployed;
+@property(strong) SDLVehicleDataEventStatus* passengerBuckleBelted;
+@property(strong) SDLVehicleDataEventStatus* driverBuckleBelted;
+@property(strong) SDLVehicleDataEventStatus* leftRow2BuckleBelted;
+@property(strong) SDLVehicleDataEventStatus* passengerChildDetected;
+@property(strong) SDLVehicleDataEventStatus* rightRow2BuckleBelted;
+@property(strong) SDLVehicleDataEventStatus* middleRow2BuckleBelted;
+@property(strong) SDLVehicleDataEventStatus* middleRow3BuckleBelted;
+@property(strong) SDLVehicleDataEventStatus* leftRow3BuckleBelted;
+@property(strong) SDLVehicleDataEventStatus* rightRow3BuckleBelted;
+@property(strong) SDLVehicleDataEventStatus* leftRearInflatableBelted;
+@property(strong) SDLVehicleDataEventStatus* rightRearInflatableBelted;
+@property(strong) SDLVehicleDataEventStatus* middleRow1BeltDeployed;
+@property(strong) SDLVehicleDataEventStatus* middleRow1BuckleBelted;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLBeltStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLBeltStatus.m
new file mode 100644
index 000000000..d26d53b24
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLBeltStatus.m
@@ -0,0 +1,276 @@
+// SDLBeltStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLBeltStatus.h"
+
+#import "SDLNames.h"
+
+@implementation SDLBeltStatus
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setDriverBeltDeployed:(SDLVehicleDataEventStatus*) driverBeltDeployed {
+ if (driverBeltDeployed != nil) {
+ [store setObject:driverBeltDeployed forKey:NAMES_driverBeltDeployed];
+ } else {
+ [store removeObjectForKey:NAMES_driverBeltDeployed];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) driverBeltDeployed {
+ NSObject* obj = [store objectForKey:NAMES_driverBeltDeployed];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setPassengerBeltDeployed:(SDLVehicleDataEventStatus*) passengerBeltDeployed {
+ if (passengerBeltDeployed != nil) {
+ [store setObject:passengerBeltDeployed forKey:NAMES_passengerBeltDeployed];
+ } else {
+ [store removeObjectForKey:NAMES_passengerBeltDeployed];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) passengerBeltDeployed {
+ NSObject* obj = [store objectForKey:NAMES_passengerBeltDeployed];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setPassengerBuckleBelted:(SDLVehicleDataEventStatus*) passengerBuckleBelted {
+ if (passengerBuckleBelted != nil) {
+ [store setObject:passengerBuckleBelted forKey:NAMES_passengerBuckleBelted];
+ } else {
+ [store removeObjectForKey:NAMES_passengerBuckleBelted];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) passengerBuckleBelted {
+ NSObject* obj = [store objectForKey:NAMES_passengerBuckleBelted];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setDriverBuckleBelted:(SDLVehicleDataEventStatus*) driverBuckleBelted {
+ if (driverBuckleBelted != nil) {
+ [store setObject:driverBuckleBelted forKey:NAMES_driverBuckleBelted];
+ } else {
+ [store removeObjectForKey:NAMES_driverBuckleBelted];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) driverBuckleBelted {
+ NSObject* obj = [store objectForKey:NAMES_driverBuckleBelted];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setLeftRow2BuckleBelted:(SDLVehicleDataEventStatus*) leftRow2BuckleBelted {
+ if (leftRow2BuckleBelted != nil) {
+ [store setObject:leftRow2BuckleBelted forKey:NAMES_leftRow2BuckleBelted];
+ } else {
+ [store removeObjectForKey:NAMES_leftRow2BuckleBelted];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) leftRow2BuckleBelted {
+ NSObject* obj = [store objectForKey:NAMES_leftRow2BuckleBelted];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setPassengerChildDetected:(SDLVehicleDataEventStatus*) passengerChildDetected {
+ if (passengerChildDetected != nil) {
+ [store setObject:passengerChildDetected forKey:NAMES_passengerChildDetected];
+ } else {
+ [store removeObjectForKey:NAMES_passengerChildDetected];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) passengerChildDetected {
+ NSObject* obj = [store objectForKey:NAMES_passengerChildDetected];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setRightRow2BuckleBelted:(SDLVehicleDataEventStatus*) rightRow2BuckleBelted {
+ if (rightRow2BuckleBelted != nil) {
+ [store setObject:rightRow2BuckleBelted forKey:NAMES_rightRow2BuckleBelted];
+ } else {
+ [store removeObjectForKey:NAMES_rightRow2BuckleBelted];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) rightRow2BuckleBelted {
+ NSObject* obj = [store objectForKey:NAMES_rightRow2BuckleBelted];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setMiddleRow2BuckleBelted:(SDLVehicleDataEventStatus*) middleRow2BuckleBelted {
+ if (middleRow2BuckleBelted != nil) {
+ [store setObject:middleRow2BuckleBelted forKey:NAMES_middleRow2BuckleBelted];
+ } else {
+ [store removeObjectForKey:NAMES_middleRow2BuckleBelted];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) middleRow2BuckleBelted {
+ NSObject* obj = [store objectForKey:NAMES_middleRow2BuckleBelted];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setMiddleRow3BuckleBelted:(SDLVehicleDataEventStatus*) middleRow3BuckleBelted {
+ if (middleRow3BuckleBelted != nil) {
+ [store setObject:middleRow3BuckleBelted forKey:NAMES_middleRow3BuckleBelted];
+ } else {
+ [store removeObjectForKey:NAMES_middleRow3BuckleBelted];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) middleRow3BuckleBelted {
+ NSObject* obj = [store objectForKey:NAMES_middleRow3BuckleBelted];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setLeftRow3BuckleBelted:(SDLVehicleDataEventStatus*) leftRow3BuckleBelted {
+ if (leftRow3BuckleBelted != nil) {
+ [store setObject:leftRow3BuckleBelted forKey:NAMES_leftRow3BuckleBelted];
+ } else {
+ [store removeObjectForKey:NAMES_leftRow3BuckleBelted];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) leftRow3BuckleBelted {
+ NSObject* obj = [store objectForKey:NAMES_leftRow3BuckleBelted];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setRightRow3BuckleBelted:(SDLVehicleDataEventStatus*) rightRow3BuckleBelted {
+ if (rightRow3BuckleBelted != nil) {
+ [store setObject:rightRow3BuckleBelted forKey:NAMES_rightRow3BuckleBelted];
+ } else {
+ [store removeObjectForKey:NAMES_rightRow3BuckleBelted];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) rightRow3BuckleBelted {
+ NSObject* obj = [store objectForKey:NAMES_rightRow3BuckleBelted];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setLeftRearInflatableBelted:(SDLVehicleDataEventStatus*) leftRearInflatableBelted {
+ if (leftRearInflatableBelted != nil) {
+ [store setObject:leftRearInflatableBelted forKey:NAMES_leftRearInflatableBelted];
+ } else {
+ [store removeObjectForKey:NAMES_leftRearInflatableBelted];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) leftRearInflatableBelted {
+ NSObject* obj = [store objectForKey:NAMES_leftRearInflatableBelted];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setRightRearInflatableBelted:(SDLVehicleDataEventStatus*) rightRearInflatableBelted {
+ if (rightRearInflatableBelted != nil) {
+ [store setObject:rightRearInflatableBelted forKey:NAMES_rightRearInflatableBelted];
+ } else {
+ [store removeObjectForKey:NAMES_rightRearInflatableBelted];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) rightRearInflatableBelted {
+ NSObject* obj = [store objectForKey:NAMES_rightRearInflatableBelted];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setMiddleRow1BeltDeployed:(SDLVehicleDataEventStatus*) middleRow1BeltDeployed {
+ if (middleRow1BeltDeployed != nil) {
+ [store setObject:middleRow1BeltDeployed forKey:NAMES_middleRow1BeltDeployed];
+ } else {
+ [store removeObjectForKey:NAMES_middleRow1BeltDeployed];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) middleRow1BeltDeployed {
+ NSObject* obj = [store objectForKey:NAMES_middleRow1BeltDeployed];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setMiddleRow1BuckleBelted:(SDLVehicleDataEventStatus*) middleRow1BuckleBelted {
+ if (middleRow1BuckleBelted != nil) {
+ [store setObject:middleRow1BuckleBelted forKey:NAMES_middleRow1BuckleBelted];
+ } else {
+ [store removeObjectForKey:NAMES_middleRow1BuckleBelted];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) middleRow1BuckleBelted {
+ NSObject* obj = [store objectForKey:NAMES_middleRow1BuckleBelted];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLBitsPerSample.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLBitsPerSample.h
new file mode 100644
index 000000000..3167752ea
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLBitsPerSample.h
@@ -0,0 +1,16 @@
+// SDLBitsPerSample.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLBitsPerSample : SDLEnum {}
+
++(SDLBitsPerSample*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLBitsPerSample*) _8_BIT;
++(SDLBitsPerSample*) _16_BIT;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLBitsPerSample.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLBitsPerSample.m
new file mode 100644
index 000000000..20d81c406
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLBitsPerSample.m
@@ -0,0 +1,47 @@
+// SDLBitsPerSample.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLBitsPerSample.h"
+
+SDLBitsPerSample* SDLBitsPerSample_8_BIT = nil;
+SDLBitsPerSample* SDLBitsPerSample_16_BIT = nil;
+
+NSMutableArray* SDLBitsPerSample_values = nil;
+
+@implementation SDLBitsPerSample
+
++(SDLBitsPerSample*) valueOf:(NSString*) value {
+ for (SDLBitsPerSample* item in SDLBitsPerSample.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLBitsPerSample_values == nil) {
+ SDLBitsPerSample_values = [[NSMutableArray alloc] initWithObjects:
+ SDLBitsPerSample._8_BIT,
+ SDLBitsPerSample._16_BIT,
+ nil];
+ }
+ return SDLBitsPerSample_values;
+}
+
++(SDLBitsPerSample*) _8_BIT {
+ if (SDLBitsPerSample_8_BIT == nil) {
+ SDLBitsPerSample_8_BIT = [[SDLBitsPerSample alloc] initWithValue:@"8_BIT"];
+ }
+ return SDLBitsPerSample_8_BIT;
+}
+
++(SDLBitsPerSample*) _16_BIT {
+ if (SDLBitsPerSample_16_BIT == nil) {
+ SDLBitsPerSample_16_BIT = [[SDLBitsPerSample alloc] initWithValue:@"16_BIT"];
+ }
+ return SDLBitsPerSample_16_BIT;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLBodyInformation.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLBodyInformation.h
new file mode 100644
index 000000000..1c5399b07
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLBodyInformation.h
@@ -0,0 +1,24 @@
+// SDLBodyInformation.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLIgnitionStableStatus.h"
+#import "SDLIgnitionStatus.h"
+
+@interface SDLBodyInformation : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* parkBrakeActive;
+@property(strong) SDLIgnitionStableStatus* ignitionStableStatus;
+@property(strong) SDLIgnitionStatus* ignitionStatus;
+@property(strong) NSNumber* driverDoorAjar;
+@property(strong) NSNumber* passengerDoorAjar;
+@property(strong) NSNumber* rearLeftDoorAjar;
+@property(strong) NSNumber* rearRightDoorAjar;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLBodyInformation.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLBodyInformation.m
new file mode 100644
index 000000000..fd98564a3
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLBodyInformation.m
@@ -0,0 +1,115 @@
+// SDLBodyInformation.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLBodyInformation.h"
+
+#import "SDLNames.h"
+
+@implementation SDLBodyInformation
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setParkBrakeActive:(NSNumber*) parkBrakeActive {
+ if (parkBrakeActive != nil) {
+ [store setObject:parkBrakeActive forKey:NAMES_parkBrakeActive];
+ } else {
+ [store removeObjectForKey:NAMES_parkBrakeActive];
+ }
+}
+
+-(NSNumber*) parkBrakeActive {
+ return [store objectForKey:NAMES_parkBrakeActive];
+}
+
+-(void) setIgnitionStableStatus:(SDLIgnitionStableStatus*) ignitionStableStatus {
+ if (ignitionStableStatus != nil) {
+ [store setObject:ignitionStableStatus forKey:NAMES_ignitionStableStatus];
+ } else {
+ [store removeObjectForKey:NAMES_ignitionStableStatus];
+ }
+}
+
+-(SDLIgnitionStableStatus*) ignitionStableStatus {
+ NSObject* obj = [store objectForKey:NAMES_ignitionStableStatus];
+ if ([obj isKindOfClass:SDLIgnitionStableStatus.class]) {
+ return (SDLIgnitionStableStatus*)obj;
+ } else {
+ return [SDLIgnitionStableStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setIgnitionStatus:(SDLIgnitionStatus*) ignitionStatus {
+ if (ignitionStatus != nil) {
+ [store setObject:ignitionStatus forKey:NAMES_ignitionStatus];
+ } else {
+ [store removeObjectForKey:NAMES_ignitionStatus];
+ }
+}
+
+-(SDLIgnitionStatus*) ignitionStatus {
+ NSObject* obj = [store objectForKey:NAMES_ignitionStatus];
+ if ([obj isKindOfClass:SDLIgnitionStatus.class]) {
+ return (SDLIgnitionStatus*)obj;
+ } else {
+ return [SDLIgnitionStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setDriverDoorAjar:(NSNumber*) driverDoorAjar {
+ if (driverDoorAjar != nil) {
+ [store setObject:driverDoorAjar forKey:NAMES_driverDoorAjar];
+ } else {
+ [store removeObjectForKey:NAMES_driverDoorAjar];
+ }
+}
+
+-(NSNumber*) driverDoorAjar {
+ return [store objectForKey:NAMES_driverDoorAjar];
+}
+
+-(void) setPassengerDoorAjar:(NSNumber*) passengerDoorAjar {
+ if (passengerDoorAjar != nil) {
+ [store setObject:passengerDoorAjar forKey:NAMES_passengerDoorAjar];
+ } else {
+ [store removeObjectForKey:NAMES_passengerDoorAjar];
+ }
+}
+
+-(NSNumber*) passengerDoorAjar {
+ return [store objectForKey:NAMES_passengerDoorAjar];
+}
+
+-(void) setRearLeftDoorAjar:(NSNumber*) rearLeftDoorAjar {
+ if (rearLeftDoorAjar != nil) {
+ [store setObject:rearLeftDoorAjar forKey:NAMES_rearLeftDoorAjar];
+ } else {
+ [store removeObjectForKey:NAMES_rearLeftDoorAjar];
+ }
+}
+
+-(NSNumber*) rearLeftDoorAjar {
+ return [store objectForKey:NAMES_rearLeftDoorAjar];
+}
+
+-(void) setRearRightDoorAjar:(NSNumber*) rearRightDoorAjar {
+ if (rearRightDoorAjar != nil) {
+ [store setObject:rearRightDoorAjar forKey:NAMES_rearRightDoorAjar];
+ } else {
+ [store removeObjectForKey:NAMES_rearRightDoorAjar];
+ }
+}
+
+-(NSNumber*) rearRightDoorAjar {
+ return [store objectForKey:NAMES_rearRightDoorAjar];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonCapabilities.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonCapabilities.h
new file mode 100644
index 000000000..b35e3f377
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonCapabilities.h
@@ -0,0 +1,20 @@
+// SDLButtonCapabilities.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLButtonName.h"
+
+@interface SDLButtonCapabilities : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLButtonName* name;
+@property(strong) NSNumber* shortPressAvailable;
+@property(strong) NSNumber* longPressAvailable;
+@property(strong) NSNumber* upDownAvailable;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonCapabilities.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonCapabilities.m
new file mode 100644
index 000000000..3fa31bd52
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonCapabilities.m
@@ -0,0 +1,74 @@
+// SDLButtonCapabilities.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLButtonCapabilities.h"
+
+#import "SDLNames.h"
+
+@implementation SDLButtonCapabilities
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setName:(SDLButtonName*) name {
+ if (name != nil) {
+ [store setObject:name forKey:NAMES_name];
+ } else {
+ [store removeObjectForKey:NAMES_name];
+ }
+}
+
+-(SDLButtonName*) name {
+ NSObject* obj = [store objectForKey:NAMES_name];
+ if ([obj isKindOfClass:SDLButtonName.class]) {
+ return (SDLButtonName*)obj;
+ } else {
+ return [SDLButtonName valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setShortPressAvailable:(NSNumber*) shortPressAvailable {
+ if (shortPressAvailable != nil) {
+ [store setObject:shortPressAvailable forKey:NAMES_shortPressAvailable];
+ } else {
+ [store removeObjectForKey:NAMES_shortPressAvailable];
+ }
+}
+
+-(NSNumber*) shortPressAvailable {
+ return [store objectForKey:NAMES_shortPressAvailable];
+}
+
+-(void) setLongPressAvailable:(NSNumber*) longPressAvailable {
+ if (longPressAvailable != nil) {
+ [store setObject:longPressAvailable forKey:NAMES_longPressAvailable];
+ } else {
+ [store removeObjectForKey:NAMES_longPressAvailable];
+ }
+}
+
+-(NSNumber*) longPressAvailable {
+ return [store objectForKey:NAMES_longPressAvailable];
+}
+
+-(void) setUpDownAvailable:(NSNumber*) upDownAvailable {
+ if (upDownAvailable != nil) {
+ [store setObject:upDownAvailable forKey:NAMES_upDownAvailable];
+ } else {
+ [store removeObjectForKey:NAMES_upDownAvailable];
+ }
+}
+
+-(NSNumber*) upDownAvailable {
+ return [store objectForKey:NAMES_upDownAvailable];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonEventMode.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonEventMode.h
new file mode 100644
index 000000000..c08e94eb7
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonEventMode.h
@@ -0,0 +1,16 @@
+// SDLButtonEventMode.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLButtonEventMode : SDLEnum {}
+
++(SDLButtonEventMode*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLButtonEventMode*) BUTTONUP;
++(SDLButtonEventMode*) BUTTONDOWN;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonEventMode.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonEventMode.m
new file mode 100644
index 000000000..bbfeedcce
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonEventMode.m
@@ -0,0 +1,47 @@
+// SDLButtonEventMode.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLButtonEventMode.h"
+
+SDLButtonEventMode* SDLButtonEventMode_BUTTONUP = nil;
+SDLButtonEventMode* SDLButtonEventMode_BUTTONDOWN = nil;
+
+NSMutableArray* SDLButtonEventMode_values = nil;
+
+@implementation SDLButtonEventMode
+
++(SDLButtonEventMode*) valueOf:(NSString*) value {
+ for (SDLButtonEventMode* item in SDLButtonEventMode.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLButtonEventMode_values == nil) {
+ SDLButtonEventMode_values = [[NSMutableArray alloc] initWithObjects:
+ SDLButtonEventMode.BUTTONUP,
+ SDLButtonEventMode.BUTTONDOWN,
+ nil];
+ }
+ return SDLButtonEventMode_values;
+}
+
++(SDLButtonEventMode*) BUTTONUP {
+ if (SDLButtonEventMode_BUTTONUP == nil) {
+ SDLButtonEventMode_BUTTONUP = [[SDLButtonEventMode alloc] initWithValue:@"BUTTONUP"];
+ }
+ return SDLButtonEventMode_BUTTONUP;
+}
+
++(SDLButtonEventMode*) BUTTONDOWN {
+ if (SDLButtonEventMode_BUTTONDOWN == nil) {
+ SDLButtonEventMode_BUTTONDOWN = [[SDLButtonEventMode alloc] initWithValue:@"BUTTONDOWN"];
+ }
+ return SDLButtonEventMode_BUTTONDOWN;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonName.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonName.h
new file mode 100644
index 000000000..7483de495
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonName.h
@@ -0,0 +1,31 @@
+// SDLButtonName.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLButtonName : SDLEnum {}
+
++(SDLButtonName*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLButtonName*) OK;
++(SDLButtonName*) SEEKLEFT;
++(SDLButtonName*) SEEKRIGHT;
++(SDLButtonName*) TUNEUP;
++(SDLButtonName*) TUNEDOWN;
++(SDLButtonName*) PRESET_0;
++(SDLButtonName*) PRESET_1;
++(SDLButtonName*) PRESET_2;
++(SDLButtonName*) PRESET_3;
++(SDLButtonName*) PRESET_4;
++(SDLButtonName*) PRESET_5;
++(SDLButtonName*) PRESET_6;
++(SDLButtonName*) PRESET_7;
++(SDLButtonName*) PRESET_8;
++(SDLButtonName*) PRESET_9;
++(SDLButtonName*) CUSTOM_BUTTON;
++(SDLButtonName*) SEARCH;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonName.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonName.m
new file mode 100644
index 000000000..b93ee4d06
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonName.m
@@ -0,0 +1,182 @@
+// SDLButtonName.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLButtonName.h"
+
+SDLButtonName* SDLButtonName_OK = nil;
+SDLButtonName* SDLButtonName_SEEKLEFT = nil;
+SDLButtonName* SDLButtonName_SEEKRIGHT = nil;
+SDLButtonName* SDLButtonName_TUNEUP = nil;
+SDLButtonName* SDLButtonName_TUNEDOWN = nil;
+SDLButtonName* SDLButtonName_PRESET_0 = nil;
+SDLButtonName* SDLButtonName_PRESET_1 = nil;
+SDLButtonName* SDLButtonName_PRESET_2 = nil;
+SDLButtonName* SDLButtonName_PRESET_3 = nil;
+SDLButtonName* SDLButtonName_PRESET_4 = nil;
+SDLButtonName* SDLButtonName_PRESET_5 = nil;
+SDLButtonName* SDLButtonName_PRESET_6 = nil;
+SDLButtonName* SDLButtonName_PRESET_7 = nil;
+SDLButtonName* SDLButtonName_PRESET_8 = nil;
+SDLButtonName* SDLButtonName_PRESET_9 = nil;
+SDLButtonName* SDLButtonName_CUSTOM_BUTTON = nil;
+SDLButtonName* SDLButtonName_SEARCH = nil;
+
+NSMutableArray* SDLButtonName_values = nil;
+
+@implementation SDLButtonName
+
++(SDLButtonName*) valueOf:(NSString*) value {
+ for (SDLButtonName* item in SDLButtonName.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLButtonName_values == nil) {
+ SDLButtonName_values = [[NSMutableArray alloc] initWithObjects:
+ SDLButtonName.OK,
+ SDLButtonName.SEEKLEFT,
+ SDLButtonName.SEEKRIGHT,
+ SDLButtonName.TUNEUP,
+ SDLButtonName.TUNEDOWN,
+ SDLButtonName.PRESET_0,
+ SDLButtonName.PRESET_1,
+ SDLButtonName.PRESET_2,
+ SDLButtonName.PRESET_3,
+ SDLButtonName.PRESET_4,
+ SDLButtonName.PRESET_5,
+ SDLButtonName.PRESET_6,
+ SDLButtonName.PRESET_7,
+ SDLButtonName.PRESET_8,
+ SDLButtonName.PRESET_9,
+ SDLButtonName.CUSTOM_BUTTON,
+ SDLButtonName.SEARCH,
+ nil];
+ }
+ return SDLButtonName_values;
+}
+
++(SDLButtonName*) OK {
+ if (SDLButtonName_OK == nil) {
+ SDLButtonName_OK = [[SDLButtonName alloc] initWithValue:@"OK"];
+ }
+ return SDLButtonName_OK;
+}
+
++(SDLButtonName*) SEEKLEFT {
+ if (SDLButtonName_SEEKLEFT == nil) {
+ SDLButtonName_SEEKLEFT = [[SDLButtonName alloc] initWithValue:@"SEEKLEFT"];
+ }
+ return SDLButtonName_SEEKLEFT;
+}
+
++(SDLButtonName*) SEEKRIGHT {
+ if (SDLButtonName_SEEKRIGHT == nil) {
+ SDLButtonName_SEEKRIGHT = [[SDLButtonName alloc] initWithValue:@"SEEKRIGHT"];
+ }
+ return SDLButtonName_SEEKRIGHT;
+}
+
++(SDLButtonName*) TUNEUP {
+ if (SDLButtonName_TUNEUP == nil) {
+ SDLButtonName_TUNEUP = [[SDLButtonName alloc] initWithValue:@"TUNEUP"];
+ }
+ return SDLButtonName_TUNEUP;
+}
+
++(SDLButtonName*) TUNEDOWN {
+ if (SDLButtonName_TUNEDOWN == nil) {
+ SDLButtonName_TUNEDOWN = [[SDLButtonName alloc] initWithValue:@"TUNEDOWN"];
+ }
+ return SDLButtonName_TUNEDOWN;
+}
+
++(SDLButtonName*) PRESET_0 {
+ if (SDLButtonName_PRESET_0 == nil) {
+ SDLButtonName_PRESET_0 = [[SDLButtonName alloc] initWithValue:@"PRESET_0"];
+ }
+ return SDLButtonName_PRESET_0;
+}
+
++(SDLButtonName*) PRESET_1 {
+ if (SDLButtonName_PRESET_1 == nil) {
+ SDLButtonName_PRESET_1 = [[SDLButtonName alloc] initWithValue:@"PRESET_1"];
+ }
+ return SDLButtonName_PRESET_1;
+}
+
++(SDLButtonName*) PRESET_2 {
+ if (SDLButtonName_PRESET_2 == nil) {
+ SDLButtonName_PRESET_2 = [[SDLButtonName alloc] initWithValue:@"PRESET_2"];
+ }
+ return SDLButtonName_PRESET_2;
+}
+
++(SDLButtonName*) PRESET_3 {
+ if (SDLButtonName_PRESET_3 == nil) {
+ SDLButtonName_PRESET_3 = [[SDLButtonName alloc] initWithValue:@"PRESET_3"];
+ }
+ return SDLButtonName_PRESET_3;
+}
+
++(SDLButtonName*) PRESET_4 {
+ if (SDLButtonName_PRESET_4 == nil) {
+ SDLButtonName_PRESET_4 = [[SDLButtonName alloc] initWithValue:@"PRESET_4"];
+ }
+ return SDLButtonName_PRESET_4;
+}
+
++(SDLButtonName*) PRESET_5 {
+ if (SDLButtonName_PRESET_5 == nil) {
+ SDLButtonName_PRESET_5 = [[SDLButtonName alloc] initWithValue:@"PRESET_5"];
+ }
+ return SDLButtonName_PRESET_5;
+}
+
++(SDLButtonName*) PRESET_6 {
+ if (SDLButtonName_PRESET_6 == nil) {
+ SDLButtonName_PRESET_6 = [[SDLButtonName alloc] initWithValue:@"PRESET_6"];
+ }
+ return SDLButtonName_PRESET_6;
+}
+
++(SDLButtonName*) PRESET_7 {
+ if (SDLButtonName_PRESET_7 == nil) {
+ SDLButtonName_PRESET_7 = [[SDLButtonName alloc] initWithValue:@"PRESET_7"];
+ }
+ return SDLButtonName_PRESET_7;
+}
+
++(SDLButtonName*) PRESET_8 {
+ if (SDLButtonName_PRESET_8 == nil) {
+ SDLButtonName_PRESET_8 = [[SDLButtonName alloc] initWithValue:@"PRESET_8"];
+ }
+ return SDLButtonName_PRESET_8;
+}
+
++(SDLButtonName*) PRESET_9 {
+ if (SDLButtonName_PRESET_9 == nil) {
+ SDLButtonName_PRESET_9 = [[SDLButtonName alloc] initWithValue:@"PRESET_9"];
+ }
+ return SDLButtonName_PRESET_9;
+}
+
++(SDLButtonName*) CUSTOM_BUTTON {
+ if (SDLButtonName_CUSTOM_BUTTON == nil) {
+ SDLButtonName_CUSTOM_BUTTON = [[SDLButtonName alloc] initWithValue:@"CUSTOM_BUTTON"];
+ }
+ return SDLButtonName_CUSTOM_BUTTON;
+}
+
++(SDLButtonName*) SEARCH {
+ if (SDLButtonName_SEARCH == nil) {
+ SDLButtonName_SEARCH = [[SDLButtonName alloc] initWithValue:@"SEARCH"];
+ }
+ return SDLButtonName_SEARCH;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonPressMode.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonPressMode.h
new file mode 100644
index 000000000..07d8c9aa5
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonPressMode.h
@@ -0,0 +1,16 @@
+// SDLButtonPressMode.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLButtonPressMode : SDLEnum {}
+
++(SDLButtonPressMode*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLButtonPressMode*) LONG;
++(SDLButtonPressMode*) SHORT;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonPressMode.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonPressMode.m
new file mode 100644
index 000000000..35a1f1b62
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLButtonPressMode.m
@@ -0,0 +1,47 @@
+// SDLButtonPressMode.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLButtonPressMode.h"
+
+SDLButtonPressMode* SDLButtonPressMode_LONG = nil;
+SDLButtonPressMode* SDLButtonPressMode_SHORT = nil;
+
+NSMutableArray* SDLButtonPressMode_values = nil;
+
+@implementation SDLButtonPressMode
+
++(SDLButtonPressMode*) valueOf:(NSString*) value {
+ for (SDLButtonPressMode* item in SDLButtonPressMode.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLButtonPressMode_values == nil) {
+ SDLButtonPressMode_values = [[NSMutableArray alloc] initWithObjects:
+ SDLButtonPressMode.LONG,
+ SDLButtonPressMode.SHORT,
+ nil];
+ }
+ return SDLButtonPressMode_values;
+}
+
++(SDLButtonPressMode*) LONG {
+ if (SDLButtonPressMode_LONG == nil) {
+ SDLButtonPressMode_LONG = [[SDLButtonPressMode alloc] initWithValue:@"LONG"];
+ }
+ return SDLButtonPressMode_LONG;
+}
+
++(SDLButtonPressMode*) SHORT {
+ if (SDLButtonPressMode_SHORT == nil) {
+ SDLButtonPressMode_SHORT = [[SDLButtonPressMode alloc] initWithValue:@"SHORT"];
+ }
+ return SDLButtonPressMode_SHORT;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLCarModeStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLCarModeStatus.h
new file mode 100644
index 000000000..a7248551c
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLCarModeStatus.h
@@ -0,0 +1,18 @@
+// SDLCarModeStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLCarModeStatus : SDLEnum {}
+
++(SDLCarModeStatus*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLCarModeStatus*) NORMAL;
++(SDLCarModeStatus*) FACTORY;
++(SDLCarModeStatus*) TRANSPORT;
++(SDLCarModeStatus*) CRASH;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLCarModeStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLCarModeStatus.m
new file mode 100644
index 000000000..7ea8047a4
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLCarModeStatus.m
@@ -0,0 +1,65 @@
+// SDLCarModeStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLCarModeStatus.h"
+
+SDLCarModeStatus* SDLCarModeStatus_NORMAL = nil;
+SDLCarModeStatus* SDLCarModeStatus_FACTORY = nil;
+SDLCarModeStatus* SDLCarModeStatus_TRANSPORT = nil;
+SDLCarModeStatus* SDLCarModeStatus_CRASH = nil;
+
+NSMutableArray* SDLCarModeStatus_values = nil;
+
+@implementation SDLCarModeStatus
+
++(SDLCarModeStatus*) valueOf:(NSString*) value {
+ for (SDLCarModeStatus* item in SDLCarModeStatus.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLCarModeStatus_values == nil) {
+ SDLCarModeStatus_values = [[NSMutableArray alloc] initWithObjects:
+ SDLCarModeStatus.NORMAL,
+ SDLCarModeStatus.FACTORY,
+ SDLCarModeStatus.TRANSPORT,
+ SDLCarModeStatus.CRASH,
+ nil];
+ }
+ return SDLCarModeStatus_values;
+}
+
++(SDLCarModeStatus*) NORMAL {
+ if (SDLCarModeStatus_NORMAL == nil) {
+ SDLCarModeStatus_NORMAL = [[SDLCarModeStatus alloc] initWithValue:@"NORMAL"];
+ }
+ return SDLCarModeStatus_NORMAL;
+}
+
++(SDLCarModeStatus*) FACTORY {
+ if (SDLCarModeStatus_FACTORY == nil) {
+ SDLCarModeStatus_FACTORY = [[SDLCarModeStatus alloc] initWithValue:@"FACTORY"];
+ }
+ return SDLCarModeStatus_FACTORY;
+}
+
++(SDLCarModeStatus*) TRANSPORT {
+ if (SDLCarModeStatus_TRANSPORT == nil) {
+ SDLCarModeStatus_TRANSPORT = [[SDLCarModeStatus alloc] initWithValue:@"TRANSPORT"];
+ }
+ return SDLCarModeStatus_TRANSPORT;
+}
+
++(SDLCarModeStatus*) CRASH {
+ if (SDLCarModeStatus_CRASH == nil) {
+ SDLCarModeStatus_CRASH = [[SDLCarModeStatus alloc] initWithValue:@"CRASH"];
+ }
+ return SDLCarModeStatus_CRASH;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLChangeRegistration.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLChangeRegistration.h
new file mode 100644
index 000000000..ab97f3595
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLChangeRegistration.h
@@ -0,0 +1,18 @@
+// SDLChangeRegistration.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+#import "SDLLanguage.h"
+
+@interface SDLChangeRegistration : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLLanguage* language;
+@property(strong) SDLLanguage* hmiDisplayLanguage;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLChangeRegistration.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLChangeRegistration.m
new file mode 100644
index 000000000..baf23a7c1
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLChangeRegistration.m
@@ -0,0 +1,55 @@
+// SDLChangeRegistration.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLChangeRegistration.h"
+
+#import "SDLNames.h"
+
+@implementation SDLChangeRegistration
+
+-(id) init {
+ if (self = [super initWithName:NAMES_ChangeRegistration]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setLanguage:(SDLLanguage*) language {
+ if (language != nil) {
+ [parameters setObject:language forKey:NAMES_language];
+ } else {
+ [parameters removeObjectForKey:NAMES_language];
+ }
+}
+
+-(SDLLanguage*) language {
+ NSObject* obj = [parameters objectForKey:NAMES_language];
+ if ([obj isKindOfClass:SDLLanguage.class]) {
+ return (SDLLanguage*)obj;
+ } else {
+ return [SDLLanguage valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setHmiDisplayLanguage:(SDLLanguage*) hmiDisplayLanguage {
+ if (hmiDisplayLanguage != nil) {
+ [parameters setObject:hmiDisplayLanguage forKey:NAMES_hmiDisplayLanguage];
+ } else {
+ [parameters removeObjectForKey:NAMES_hmiDisplayLanguage];
+ }
+}
+
+-(SDLLanguage*) hmiDisplayLanguage {
+ NSObject* obj = [parameters objectForKey:NAMES_hmiDisplayLanguage];
+ if ([obj isKindOfClass:SDLLanguage.class]) {
+ return (SDLLanguage*)obj;
+ } else {
+ return [SDLLanguage valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLChangeRegistrationResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLChangeRegistrationResponse.h
new file mode 100644
index 000000000..2e026bba9
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLChangeRegistrationResponse.h
@@ -0,0 +1,13 @@
+// SDLChangeRegistrationResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLChangeRegistrationResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLChangeRegistrationResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLChangeRegistrationResponse.m
new file mode 100644
index 000000000..de6c6d6f6
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLChangeRegistrationResponse.m
@@ -0,0 +1,21 @@
+// SDLChangeRegistrationResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLChangeRegistrationResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLChangeRegistrationResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_ChangeRegistration]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLCharacterSet.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLCharacterSet.h
new file mode 100644
index 000000000..262fe92a5
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLCharacterSet.h
@@ -0,0 +1,18 @@
+// SDLCharacterSet.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLCharacterSet : SDLEnum {}
+
++(SDLCharacterSet*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLCharacterSet*) TYPE2SET;
++(SDLCharacterSet*) TYPE5SET;
++(SDLCharacterSet*) CID1SET;
++(SDLCharacterSet*) CID2SET;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLCharacterSet.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLCharacterSet.m
new file mode 100644
index 000000000..ffda806dc
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLCharacterSet.m
@@ -0,0 +1,65 @@
+// SDLCharacterSet.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLCharacterSet.h"
+
+SDLCharacterSet* SDLCharacterSet_TYPE2SET = nil;
+SDLCharacterSet* SDLCharacterSet_TYPE5SET = nil;
+SDLCharacterSet* SDLCharacterSet_CID1SET = nil;
+SDLCharacterSet* SDLCharacterSet_CID2SET = nil;
+
+NSMutableArray* SDLCharacterSet_values = nil;
+
+@implementation SDLCharacterSet
+
++(SDLCharacterSet*) valueOf:(NSString*) value {
+ for (SDLCharacterSet* item in SDLCharacterSet.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLCharacterSet_values == nil) {
+ SDLCharacterSet_values = [[NSMutableArray alloc] initWithObjects:
+ SDLCharacterSet.TYPE2SET,
+ SDLCharacterSet.TYPE5SET,
+ SDLCharacterSet.CID1SET,
+ SDLCharacterSet.CID2SET,
+ nil];
+ }
+ return SDLCharacterSet_values;
+}
+
++(SDLCharacterSet*) TYPE2SET {
+ if (SDLCharacterSet_TYPE2SET == nil) {
+ SDLCharacterSet_TYPE2SET = [[SDLCharacterSet alloc] initWithValue:@"TYPE2SET"];
+ }
+ return SDLCharacterSet_TYPE2SET;
+}
+
++(SDLCharacterSet*) TYPE5SET {
+ if (SDLCharacterSet_TYPE5SET == nil) {
+ SDLCharacterSet_TYPE5SET = [[SDLCharacterSet alloc] initWithValue:@"TYPE5SET"];
+ }
+ return SDLCharacterSet_TYPE5SET;
+}
+
++(SDLCharacterSet*) CID1SET {
+ if (SDLCharacterSet_CID1SET == nil) {
+ SDLCharacterSet_CID1SET = [[SDLCharacterSet alloc] initWithValue:@"CID1SET"];
+ }
+ return SDLCharacterSet_CID1SET;
+}
+
++(SDLCharacterSet*) CID2SET {
+ if (SDLCharacterSet_CID2SET == nil) {
+ SDLCharacterSet_CID2SET = [[SDLCharacterSet alloc] initWithValue:@"CID2SET"];
+ }
+ return SDLCharacterSet_CID2SET;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLChoice.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLChoice.h
new file mode 100644
index 000000000..1c077c73b
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLChoice.h
@@ -0,0 +1,23 @@
+// SDLChoice.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLImage.h"
+
+@interface SDLChoice : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* choiceID;
+@property(strong) NSString* menuName;
+@property(strong) NSMutableArray* vrCommands;
+@property(strong) SDLImage* image;
+@property(strong) NSString* secondaryText;
+@property(strong) NSString* tertiaryText;
+@property(strong) SDLImage* secondaryImage;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLChoice.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLChoice.m
new file mode 100644
index 000000000..f7d5ff6ae
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLChoice.m
@@ -0,0 +1,115 @@
+// SDLChoice.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLChoice.h"
+
+#import "SDLNames.h"
+
+@implementation SDLChoice
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setChoiceID:(NSNumber*) choiceID {
+ if (choiceID != nil) {
+ [store setObject:choiceID forKey:NAMES_choiceID];
+ } else {
+ [store removeObjectForKey:NAMES_choiceID];
+ }
+}
+
+-(NSNumber*) choiceID {
+ return [store objectForKey:NAMES_choiceID];
+}
+
+-(void) setMenuName:(NSString*) menuName {
+ if (menuName != nil) {
+ [store setObject:menuName forKey:NAMES_menuName];
+ } else {
+ [store removeObjectForKey:NAMES_menuName];
+ }
+}
+
+-(NSString*) menuName {
+ return [store objectForKey:NAMES_menuName];
+}
+
+-(void) setVrCommands:(NSMutableArray*) vrCommands {
+ if (vrCommands != nil) {
+ [store setObject:vrCommands forKey:NAMES_vrCommands];
+ } else {
+ [store removeObjectForKey:NAMES_vrCommands];
+ }
+}
+
+-(NSMutableArray*) vrCommands {
+ return [store objectForKey:NAMES_vrCommands];
+}
+
+-(void) setImage:(SDLImage*) image {
+ if (image != nil) {
+ [store setObject:image forKey:NAMES_image];
+ } else {
+ [store removeObjectForKey:NAMES_image];
+ }
+}
+
+-(SDLImage*) image {
+ NSObject* obj = [store objectForKey:NAMES_image];
+ if ([obj isKindOfClass:SDLImage.class]) {
+ return (SDLImage*)obj;
+ } else {
+ return [[SDLImage alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setSecondaryText:(NSString*) secondaryText {
+ if (secondaryText != nil) {
+ [store setObject:secondaryText forKey:NAMES_secondaryText];
+ } else {
+ [store removeObjectForKey:NAMES_secondaryText];
+ }
+}
+
+-(NSString*) secondaryText {
+ return [store objectForKey:NAMES_secondaryText];
+}
+
+-(void) setTertiaryText:(NSString*) tertiaryText {
+ if (tertiaryText != nil) {
+ [store setObject:tertiaryText forKey:NAMES_tertiaryText];
+ } else {
+ [store removeObjectForKey:NAMES_tertiaryText];
+ }
+}
+
+-(NSString*) tertiaryText {
+ return [store objectForKey:NAMES_tertiaryText];
+}
+
+-(void) setSecondaryImage:(SDLImage*) secondaryImage {
+ if (secondaryImage != nil) {
+ [store setObject:secondaryImage forKey:NAMES_secondaryImage];
+ } else {
+ [store removeObjectForKey:NAMES_secondaryImage];
+ }
+}
+
+-(SDLImage*) secondaryImage {
+ NSObject* obj = [store objectForKey:NAMES_secondaryImage];
+ if ([obj isKindOfClass:SDLImage.class]) {
+ return (SDLImage*)obj;
+ } else {
+ return [[SDLImage alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLClusterModeStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLClusterModeStatus.h
new file mode 100644
index 000000000..215e26e9c
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLClusterModeStatus.h
@@ -0,0 +1,22 @@
+// SDLClusterModeStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLPowerModeQualificationStatus.h"
+#import "SDLCarModeStatus.h"
+#import "SDLPowerModeStatus.h"
+
+@interface SDLClusterModeStatus : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* powerModeActive;
+@property(strong) SDLPowerModeQualificationStatus* powerModeQualificationStatus;
+@property(strong) SDLCarModeStatus* carModeStatus;
+@property(strong) SDLPowerModeStatus* powerModeStatus;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLClusterModeStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLClusterModeStatus.m
new file mode 100644
index 000000000..cbff51691
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLClusterModeStatus.m
@@ -0,0 +1,84 @@
+// SDLClusterModeStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLClusterModeStatus.h"
+
+#import "SDLNames.h"
+
+@implementation SDLClusterModeStatus
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setPowerModeActive:(NSNumber*) powerModeActive {
+ if (powerModeActive != nil) {
+ [store setObject:powerModeActive forKey:NAMES_powerModeActive];
+ } else {
+ [store removeObjectForKey:NAMES_powerModeActive];
+ }
+}
+
+-(NSNumber*) powerModeActive {
+ return [store objectForKey:NAMES_powerModeActive];
+}
+
+-(void) setPowerModeQualificationStatus:(SDLPowerModeQualificationStatus*) powerModeQualificationStatus {
+ if (powerModeQualificationStatus != nil) {
+ [store setObject:powerModeQualificationStatus forKey:NAMES_powerModeQualificationStatus];
+ } else {
+ [store removeObjectForKey:NAMES_powerModeQualificationStatus];
+ }
+}
+
+-(SDLPowerModeQualificationStatus*) powerModeQualificationStatus {
+ NSObject* obj = [store objectForKey:NAMES_powerModeQualificationStatus];
+ if ([obj isKindOfClass:SDLPowerModeQualificationStatus.class]) {
+ return (SDLPowerModeQualificationStatus*)obj;
+ } else {
+ return [SDLPowerModeQualificationStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setCarModeStatus:(SDLCarModeStatus*) carModeStatus {
+ if (carModeStatus != nil) {
+ [store setObject:carModeStatus forKey:NAMES_carModeStatus];
+ } else {
+ [store removeObjectForKey:NAMES_carModeStatus];
+ }
+}
+
+-(SDLCarModeStatus*) carModeStatus {
+ NSObject* obj = [store objectForKey:NAMES_carModeStatus];
+ if ([obj isKindOfClass:SDLCarModeStatus.class]) {
+ return (SDLCarModeStatus*)obj;
+ } else {
+ return [SDLCarModeStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setPowerModeStatus:(SDLPowerModeStatus*) powerModeStatus {
+ if (powerModeStatus != nil) {
+ [store setObject:powerModeStatus forKey:NAMES_powerModeStatus];
+ } else {
+ [store removeObjectForKey:NAMES_powerModeStatus];
+ }
+}
+
+-(SDLPowerModeStatus*) powerModeStatus {
+ NSObject* obj = [store objectForKey:NAMES_powerModeStatus];
+ if ([obj isKindOfClass:SDLPowerModeStatus.class]) {
+ return (SDLPowerModeStatus*)obj;
+ } else {
+ return [SDLPowerModeStatus valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLCompassDirection.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLCompassDirection.h
new file mode 100644
index 000000000..c4cc4c177
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLCompassDirection.h
@@ -0,0 +1,22 @@
+// SDLCompassDirection.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLCompassDirection : SDLEnum {}
+
++(SDLCompassDirection*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLCompassDirection*) NORTH;
++(SDLCompassDirection*) NORTHWEST;
++(SDLCompassDirection*) WEST;
++(SDLCompassDirection*) SOUTHWEST;
++(SDLCompassDirection*) SOUTH;
++(SDLCompassDirection*) SOUTHEAST;
++(SDLCompassDirection*) EAST;
++(SDLCompassDirection*) NORTHEAST;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLCompassDirection.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLCompassDirection.m
new file mode 100644
index 000000000..0c4ae2de4
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLCompassDirection.m
@@ -0,0 +1,101 @@
+// SDLCompassDirection.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLCompassDirection.h"
+
+SDLCompassDirection* SDLCompassDirection_NORTH = nil;
+SDLCompassDirection* SDLCompassDirection_NORTHWEST = nil;
+SDLCompassDirection* SDLCompassDirection_WEST = nil;
+SDLCompassDirection* SDLCompassDirection_SOUTHWEST = nil;
+SDLCompassDirection* SDLCompassDirection_SOUTH = nil;
+SDLCompassDirection* SDLCompassDirection_SOUTHEAST = nil;
+SDLCompassDirection* SDLCompassDirection_EAST = nil;
+SDLCompassDirection* SDLCompassDirection_NORTHEAST = nil;
+
+NSMutableArray* SDLCompassDirection_values = nil;
+
+@implementation SDLCompassDirection
+
++(SDLCompassDirection*) valueOf:(NSString*) value {
+ for (SDLCompassDirection* item in SDLCompassDirection.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLCompassDirection_values == nil) {
+ SDLCompassDirection_values = [[NSMutableArray alloc] initWithObjects:
+ SDLCompassDirection.NORTH,
+ SDLCompassDirection.NORTHWEST,
+ SDLCompassDirection.WEST,
+ SDLCompassDirection.SOUTHWEST,
+ SDLCompassDirection.SOUTH,
+ SDLCompassDirection.SOUTHEAST,
+ SDLCompassDirection.EAST,
+ SDLCompassDirection.NORTHEAST,
+ nil];
+ }
+ return SDLCompassDirection_values;
+}
+
++(SDLCompassDirection*) NORTH {
+ if (SDLCompassDirection_NORTH == nil) {
+ SDLCompassDirection_NORTH = [[SDLCompassDirection alloc] initWithValue:@"NORTH"];
+ }
+ return SDLCompassDirection_NORTH;
+}
+
++(SDLCompassDirection*) NORTHWEST {
+ if (SDLCompassDirection_NORTHWEST == nil) {
+ SDLCompassDirection_NORTHWEST = [[SDLCompassDirection alloc] initWithValue:@"NORTHWEST"];
+ }
+ return SDLCompassDirection_NORTHWEST;
+}
+
++(SDLCompassDirection*) WEST {
+ if (SDLCompassDirection_WEST == nil) {
+ SDLCompassDirection_WEST = [[SDLCompassDirection alloc] initWithValue:@"WEST"];
+ }
+ return SDLCompassDirection_WEST;
+}
+
++(SDLCompassDirection*) SOUTHWEST {
+ if (SDLCompassDirection_SOUTHWEST == nil) {
+ SDLCompassDirection_SOUTHWEST = [[SDLCompassDirection alloc] initWithValue:@"SOUTHWEST"];
+ }
+ return SDLCompassDirection_SOUTHWEST;
+}
+
++(SDLCompassDirection*) SOUTH {
+ if (SDLCompassDirection_SOUTH == nil) {
+ SDLCompassDirection_SOUTH = [[SDLCompassDirection alloc] initWithValue:@"SOUTH"];
+ }
+ return SDLCompassDirection_SOUTH;
+}
+
++(SDLCompassDirection*) SOUTHEAST {
+ if (SDLCompassDirection_SOUTHEAST == nil) {
+ SDLCompassDirection_SOUTHEAST = [[SDLCompassDirection alloc] initWithValue:@"SOUTHEAST"];
+ }
+ return SDLCompassDirection_SOUTHEAST;
+}
+
++(SDLCompassDirection*) EAST {
+ if (SDLCompassDirection_EAST == nil) {
+ SDLCompassDirection_EAST = [[SDLCompassDirection alloc] initWithValue:@"EAST"];
+ }
+ return SDLCompassDirection_EAST;
+}
+
++(SDLCompassDirection*) NORTHEAST {
+ if (SDLCompassDirection_NORTHEAST == nil) {
+ SDLCompassDirection_NORTHEAST = [[SDLCompassDirection alloc] initWithValue:@"NORTHEAST"];
+ }
+ return SDLCompassDirection_NORTHEAST;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLComponentVolumeStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLComponentVolumeStatus.h
new file mode 100644
index 000000000..8c8423ef9
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLComponentVolumeStatus.h
@@ -0,0 +1,20 @@
+// SDLComponentVolumeStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLComponentVolumeStatus : SDLEnum {}
+
++(SDLComponentVolumeStatus*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLComponentVolumeStatus*) UNKNOWN;
++(SDLComponentVolumeStatus*) NORMAL;
++(SDLComponentVolumeStatus*) LOW;
++(SDLComponentVolumeStatus*) FAULT;
++(SDLComponentVolumeStatus*) ALERT;
++(SDLComponentVolumeStatus*) NOT_SUPPORTED;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLComponentVolumeStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLComponentVolumeStatus.m
new file mode 100644
index 000000000..a30e51ac3
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLComponentVolumeStatus.m
@@ -0,0 +1,83 @@
+// SDLComponentVolumeStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLComponentVolumeStatus.h"
+
+SDLComponentVolumeStatus* SDLComponentVolumeStatus_UNKNOWN = nil;
+SDLComponentVolumeStatus* SDLComponentVolumeStatus_NORMAL = nil;
+SDLComponentVolumeStatus* SDLComponentVolumeStatus_LOW = nil;
+SDLComponentVolumeStatus* SDLComponentVolumeStatus_FAULT = nil;
+SDLComponentVolumeStatus* SDLComponentVolumeStatus_ALERT = nil;
+SDLComponentVolumeStatus* SDLComponentVolumeStatus_NOT_SUPPORTED = nil;
+
+NSMutableArray* SDLComponentVolumeStatus_values = nil;
+
+@implementation SDLComponentVolumeStatus
+
++(SDLComponentVolumeStatus*) valueOf:(NSString*) value {
+ for (SDLComponentVolumeStatus* item in SDLComponentVolumeStatus.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLComponentVolumeStatus_values == nil) {
+ SDLComponentVolumeStatus_values = [[NSMutableArray alloc] initWithObjects:
+ SDLComponentVolumeStatus.UNKNOWN,
+ SDLComponentVolumeStatus.NORMAL,
+ SDLComponentVolumeStatus.LOW,
+ SDLComponentVolumeStatus.FAULT,
+ SDLComponentVolumeStatus.ALERT,
+ SDLComponentVolumeStatus.NOT_SUPPORTED,
+ nil];
+ }
+ return SDLComponentVolumeStatus_values;
+}
+
++(SDLComponentVolumeStatus*) UNKNOWN {
+ if (SDLComponentVolumeStatus_UNKNOWN == nil) {
+ SDLComponentVolumeStatus_UNKNOWN = [[SDLComponentVolumeStatus alloc] initWithValue:@"UNKNOWN"];
+ }
+ return SDLComponentVolumeStatus_UNKNOWN;
+}
+
++(SDLComponentVolumeStatus*) NORMAL {
+ if (SDLComponentVolumeStatus_NORMAL == nil) {
+ SDLComponentVolumeStatus_NORMAL = [[SDLComponentVolumeStatus alloc] initWithValue:@"NORMAL"];
+ }
+ return SDLComponentVolumeStatus_NORMAL;
+}
+
++(SDLComponentVolumeStatus*) LOW {
+ if (SDLComponentVolumeStatus_LOW == nil) {
+ SDLComponentVolumeStatus_LOW = [[SDLComponentVolumeStatus alloc] initWithValue:@"LOW"];
+ }
+ return SDLComponentVolumeStatus_LOW;
+}
+
++(SDLComponentVolumeStatus*) FAULT {
+ if (SDLComponentVolumeStatus_FAULT == nil) {
+ SDLComponentVolumeStatus_FAULT = [[SDLComponentVolumeStatus alloc] initWithValue:@"FAULT"];
+ }
+ return SDLComponentVolumeStatus_FAULT;
+}
+
++(SDLComponentVolumeStatus*) ALERT {
+ if (SDLComponentVolumeStatus_ALERT == nil) {
+ SDLComponentVolumeStatus_ALERT = [[SDLComponentVolumeStatus alloc] initWithValue:@"ALERT"];
+ }
+ return SDLComponentVolumeStatus_ALERT;
+}
+
++(SDLComponentVolumeStatus*) NOT_SUPPORTED {
+ if (SDLComponentVolumeStatus_NOT_SUPPORTED == nil) {
+ SDLComponentVolumeStatus_NOT_SUPPORTED = [[SDLComponentVolumeStatus alloc] initWithValue:@"NOT_SUPPORTED"];
+ }
+ return SDLComponentVolumeStatus_NOT_SUPPORTED;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLConsoleController.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLConsoleController.h
new file mode 100644
index 000000000..6570735e6
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLConsoleController.h
@@ -0,0 +1,21 @@
+// SDLConsoleController.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+@import Foundation;
+@import UIKit;
+
+#import "SDLDebugTool.h"
+
+@interface SDLConsoleController : UITableViewController <SDLDebugToolConsole> {
+ NSMutableArray* messageList;
+ BOOL atBottom;
+ NSDateFormatter* dateFormatter;
+}
+
+@property (strong, readonly) NSMutableArray *messageList;
+
+-(id) initWithTableView:(UITableView*) tableView;
+
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLConsoleController.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLConsoleController.m
new file mode 100644
index 000000000..f3439e0a6
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLConsoleController.m
@@ -0,0 +1,220 @@
+// SDLConsoleController.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLConsoleController.h"
+
+#import "SDLJSONEncoder.h"
+#import "SDLRPCResponse.h"
+
+@implementation SDLConsoleController
+
+@synthesize messageList;
+
+-(id) initWithTableView:(UITableView*) tableView {
+ if (self = [super initWithStyle:UITableViewStylePlain]) {
+ self.tableView = tableView;
+ self.tableView.delegate = self;
+ self.tableView.dataSource = self;
+ [self viewDidLoad];
+ }
+ return self;
+}
+
+
+-(void) append:(id) toAppend {
+ dispatch_async(dispatch_get_main_queue(), ^{
+ //Insert the new data
+ NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
+
+ [dictionary setObject:toAppend forKey:@"object"];
+ [dictionary setObject:[NSDate date] forKey:@"date"];
+
+ [messageList addObject:dictionary];
+ NSIndexPath *newIndex = [NSIndexPath indexPathForRow:(messageList.count - 1) inSection:0];
+ [self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndex] withRowAnimation:UITableViewRowAnimationBottom];
+
+ //If we were at the bottom, scroll to the new bottom.
+ if (atBottom) {
+ [self.tableView scrollToRowAtIndexPath:newIndex atScrollPosition:UITableViewScrollPositionBottom animated:YES];
+ }
+
+ [self.tableView reloadData];
+ });
+}
+
+-(BOOL) isLastRowVisible {
+ if (messageList.count == 0) {
+ return YES;
+ } else {
+ NSIndexPath *lastIndex = [NSIndexPath indexPathForRow:(messageList.count - 1) inSection:0];
+
+ NSArray* visibleRowIndexes = [self.tableView indexPathsForVisibleRows];
+ for (NSIndexPath* aPath in visibleRowIndexes) {
+ if ([aPath compare:lastIndex] == NSOrderedSame) {
+ return YES;
+ }
+ }
+ }
+ return NO;
+
+}
+
+
+#pragma mark -
+#pragma mark SDLDebugTool Console Delegate
+
+-(void) logInfo:(NSString*) info {
+ [self append:info];
+}
+
+-(void) logException:(NSException*) ex withMessage:(NSString*) message {
+ [self append:message];
+ [self append:[ex description]];
+}
+
+-(void) logMessage:(SDLRPCMessage*) message{
+ [self append:message];
+}
+
+
+
+#pragma mark -
+#pragma mark View lifecycle
+
+
+- (void)viewDidLoad {
+
+ [SDLDebugTool addConsole:self];
+
+ [super viewDidLoad];
+
+ atBottom = YES;
+
+ messageList = [[NSMutableArray alloc] initWithCapacity:100];
+ dateFormatter = [[NSDateFormatter alloc] init];
+ dateFormatter.dateFormat = @"hh:mm:ss.SSS";
+}
+
+#pragma mark -
+#pragma mark Scroll View Delegate
+
+-(void) updateWhetherScrolledToBottom {
+ if ([self isLastRowVisible]) {
+ atBottom = YES;
+ } else {
+ atBottom = NO;
+ }
+}
+
+-(void) scrollViewDidEndDecelerating:(UIScrollView*) scrollView {
+ [self updateWhetherScrolledToBottom];
+}
+
+-(void) scrollViewDidEndDragging:(UIScrollView*) scrollView willDecelerate:(BOOL) willDecelerate {
+ [self updateWhetherScrolledToBottom];
+}
+
+
+#pragma mark -
+#pragma mark Table view data source
+
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
+ // Return the number of sections.
+ return 1;
+}
+
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+ // Return the number of rows in the section.
+ return messageList.count;
+}
+
+// Customize the appearance of table view cells.
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+
+ static NSString *CellIdentifier = @"Cell";
+
+ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
+ if (cell == nil) {
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
+ }
+
+ NSDictionary *currentDictionary = [messageList objectAtIndex:indexPath.row];
+ id msg = [currentDictionary objectForKey:@"object"];
+
+ NSString* tempdetail = [@"Time: " stringByAppendingString:[dateFormatter stringFromDate:[currentDictionary objectForKey:@"date"]]];
+
+ if ([msg isKindOfClass:SDLRPCMessage.class]) {
+ SDLRPCMessage *rpc = msg;
+
+ NSString* title = [NSString stringWithFormat:@"%@ (%@)", rpc.name, rpc.messageType];
+
+ //TODO: Cell Color Based On Message Type
+ cell.textLabel.text = title;
+
+ if ([rpc.messageType isEqualToString:@"response"]) {
+ SDLRPCResponse* response = (SDLRPCResponse*) rpc;
+// if ([response info] == nil)
+ NSString* detail = [NSString stringWithFormat:@"%@ - %@", tempdetail, [response resultCode]];
+ cell.detailTextLabel.text = detail;
+// else
+// detail = [NSString stringWithFormat:@"%@: %@", [response resultCode], [response info]];
+ }
+ else {
+ cell.detailTextLabel.text = tempdetail;
+ }
+
+ } else {
+ cell.textLabel.text = msg;
+ cell.detailTextLabel.text = tempdetail;
+ }
+
+ return cell;
+}
+
+
+#pragma mark -
+#pragma mark Table view delegate
+
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+
+ NSDictionary *currentDictionary = [messageList objectAtIndex:indexPath.row];
+ id obj = [currentDictionary objectForKey:@"object"];
+
+ NSString* alertText = nil;
+ if ([obj isKindOfClass:SDLRPCMessage.class]) {
+ //TODO:DEBUGOUTS
+// [SDLDebugTool logInfo:@"SDLonsoleController: Class = %@",[obj class]];
+ //TODO:DEBUGOUTSEND
+
+ SDLRPCMessage *rpc = obj;
+
+ //TODO:Get Internal Version Of Message For Line Below
+ NSDictionary* dictionary = [rpc serializeAsDictionary:2];
+
+ NSError *error = nil;
+ NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionary
+ options:NSJSONWritingPrettyPrinted
+ error:&error];
+
+ if (!jsonData) {
+ alertText = @"Error parsing the JSON.";
+ } else {
+ alertText = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
+ }
+
+ } else {
+ alertText = [NSString stringWithFormat:@"%@",[obj description]];
+ }
+
+ UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"RPCMessage" message:alertText delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
+ [alertView show];
+ alertView = nil;
+
+ [self.tableView deselectRowAtIndexPath:indexPath animated:YES];
+
+}
+
+
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLCreateInteractionChoiceSet.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLCreateInteractionChoiceSet.h
new file mode 100644
index 000000000..2d72e4f2d
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLCreateInteractionChoiceSet.h
@@ -0,0 +1,16 @@
+// SDLCreateInteractionChoiceSet.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLCreateInteractionChoiceSet : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* interactionChoiceSetID;
+@property(strong) NSMutableArray* choiceSet;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLCreateInteractionChoiceSet.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLCreateInteractionChoiceSet.m
new file mode 100644
index 000000000..1ac8baf95
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLCreateInteractionChoiceSet.m
@@ -0,0 +1,55 @@
+// SDLCreateInteractionChoiceSet.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLCreateInteractionChoiceSet.h"
+
+#import "SDLNames.h"
+#import "SDLChoice.h"
+
+@implementation SDLCreateInteractionChoiceSet
+
+-(id) init {
+ if (self = [super initWithName:NAMES_CreateInteractionChoiceSet]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setInteractionChoiceSetID:(NSNumber*) interactionChoiceSetID {
+ if (interactionChoiceSetID != nil) {
+ [parameters setObject:interactionChoiceSetID forKey:NAMES_interactionChoiceSetID];
+ } else {
+ [parameters removeObjectForKey:NAMES_interactionChoiceSetID];
+ }
+}
+
+-(NSNumber*) interactionChoiceSetID {
+ return [parameters objectForKey:NAMES_interactionChoiceSetID];
+}
+
+-(void) setChoiceSet:(NSMutableArray*) choiceSet {
+ if (choiceSet != nil) {
+ [parameters setObject:choiceSet forKey:NAMES_choiceSet];
+ } else {
+ [parameters removeObjectForKey:NAMES_choiceSet];
+ }
+}
+
+-(NSMutableArray*) choiceSet {
+ NSMutableArray* array = [parameters objectForKey:NAMES_choiceSet];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLChoice.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLChoice alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h
new file mode 100644
index 000000000..237c79c56
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h
@@ -0,0 +1,13 @@
+// SDLCreateInteractionChoiceSetResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLCreateInteractionChoiceSetResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m
new file mode 100644
index 000000000..4fd191fae
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m
@@ -0,0 +1,21 @@
+// SDLCreateInteractionChoiceSetResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLCreateInteractionChoiceSetResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLCreateInteractionChoiceSetResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_CreateInteractionChoiceSet]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDIDResult.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDIDResult.h
new file mode 100644
index 000000000..6b684c34a
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDIDResult.h
@@ -0,0 +1,19 @@
+// SDLDIDResult.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLVehicleDataResultCode.h"
+
+@interface SDLDIDResult : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLVehicleDataResultCode* resultCode;
+@property(strong) NSNumber* didLocation;
+@property(strong) NSString* data;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDIDResult.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDIDResult.m
new file mode 100644
index 000000000..f0e136978
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDIDResult.m
@@ -0,0 +1,62 @@
+// SDLDIDResult.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLDIDResult.h"
+
+#import "SDLNames.h"
+
+@implementation SDLDIDResult
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setResultCode:(SDLVehicleDataResultCode*) resultCode {
+ if (resultCode != nil) {
+ [store setObject:resultCode forKey:NAMES_resultCode];
+ } else {
+ [store removeObjectForKey:NAMES_resultCode];
+ }
+}
+
+-(SDLVehicleDataResultCode*) resultCode {
+ NSObject* obj = [store objectForKey:NAMES_resultCode];
+ if ([obj isKindOfClass:SDLVehicleDataResultCode.class]) {
+ return (SDLVehicleDataResultCode*)obj;
+ } else {
+ return [SDLVehicleDataResultCode valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setDidLocation:(NSNumber*) didLocation {
+ if (didLocation != nil) {
+ [store setObject:didLocation forKey:NAMES_didLocation];
+ } else {
+ [store removeObjectForKey:NAMES_didLocation];
+ }
+}
+
+-(NSNumber*) didLocation {
+ return [store objectForKey:NAMES_didLocation];
+}
+
+-(void) setData:(NSString*) data {
+ if (data != nil) {
+ [store setObject:data forKey:NAMES_data];
+ } else {
+ [store removeObjectForKey:NAMES_data];
+ }
+}
+
+-(NSString*) data {
+ return [store objectForKey:NAMES_data];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDebugTool.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDebugTool.h
new file mode 100644
index 000000000..741140cfe
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDebugTool.h
@@ -0,0 +1,54 @@
+// SDLDebugTool.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+@import Foundation;
+
+@class SDLRPCMessage;
+
+@protocol SDLDebugToolConsole
+
+- (void)logInfo:(NSString *)info;
+
+@end
+
+
+typedef NS_ENUM(UInt8, SDLDebugType) {
+ SDLDebugType_Debug = 0,
+ SDLDebugType_Transport_iAP = 1,
+ SDLDebugType_Transport_TCP = 2,
+ SDLDebugType_Protocol = 3,
+ SDLDebugType_RPC = 4,
+ SDLDebugType_APP = 5
+};
+
+typedef NS_ENUM(UInt8, SDLDebugOutput) {
+ SDLDebugOutput_All = 0xFF,
+ SDLDebugOutput_DeviceConsole = 1,
+ SDLDebugOutput_DebugToolConsole = 2,
+ SDLDebugOutput_File = 4
+};
+
+
+
+
+@interface SDLDebugTool : NSObject {}
+
++ (void)addConsole:(NSObject<SDLDebugToolConsole> *)console;
++ (void)addConsole:(NSObject<SDLDebugToolConsole> *)console toGroup:(NSString *)groupName;
++ (void)removeConsole:(NSObject<SDLDebugToolConsole> *)console;
++ (void)removeConsole:(NSObject<SDLDebugToolConsole> *)console fromGroup:(NSString *)groupName;
++ (void)logInfo:(NSString *)info;
++ (void)logInfo:(NSString *)info withType:(SDLDebugType)type;
++ (void)logInfo:(NSString *)info withType:(SDLDebugType)type toOutput:(SDLDebugOutput)output;
++ (void)logInfo:(NSString *)info andBinaryData:(NSData *)data withType:(SDLDebugType)type toOutput:(SDLDebugOutput)output;
++ (void)logInfo:(NSString *)info withType:(SDLDebugType)type toOutput:(SDLDebugOutput)output toGroup:(NSString *)consoleGroupName;
+
++ (void)enableDebugToLogFile;
++ (void)disableDebugToLogFile;
++ (void)writeToLogFile:(NSString *)info;
+
++ (NSString *)stringForDebugType:(SDLDebugType) type;
+
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDebugTool.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDebugTool.m
new file mode 100644
index 000000000..5b686a4e7
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDebugTool.m
@@ -0,0 +1,213 @@
+// SDLDebugTool.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLDebugTool.h"
+#import "SDLRPCMessage.h"
+#import "SDLSiphonServer.h"
+#import "SDLHexUtility.h"
+
+#define LOG_ERROR_ENABLED
+
+static NSMutableDictionary* namedConsoleSets = nil;
+
+bool debugToLogFile = false;
+
+@implementation SDLDebugTool
+
+
+#pragma mark - Console Management
++ (void)addConsole:(NSObject<SDLDebugToolConsole> *)console {
+ [self addConsole:console toGroup:@"default"];
+}
+
++ (void)addConsole:(NSObject<SDLDebugToolConsole> *)console toGroup:(NSString *)groupName {
+ // Make sure master dictionary exists
+ if (namedConsoleSets == nil) {
+ namedConsoleSets = [NSMutableDictionary new];
+ }
+
+ // Make sure the set to contain this group's elements exists
+ if ([namedConsoleSets objectForKey:groupName] == nil) {
+ [namedConsoleSets setValue:[NSMutableSet new] forKey:groupName];
+ }
+
+ // Add the console to the set
+ [[namedConsoleSets valueForKey:groupName] addObject:console];
+
+}
+
++ (void)removeConsole:(NSObject<SDLDebugToolConsole> *)console {
+ [self removeConsole:console fromGroup:@"default"];
+}
+
++ (void)removeConsole:(NSObject<SDLDebugToolConsole> *)console fromGroup:(NSString *)groupName {
+ [[SDLDebugTool getConsoleListenersForGroup:groupName] removeObject:console];
+}
+
++ (NSMutableSet*)getConsoleListenersForGroup:(NSString *)groupName {
+ return [namedConsoleSets valueForKey:groupName];
+}
+
+
+#pragma mark - logging
+// TODO: Can we get rid of the "toGroup" stuff and merge it with the "toOutput" system?
+
++ (void)logInfo:(NSString *)info {
+ [self logInfo:info withType:SDLDebugType_Debug toOutput:SDLDebugOutput_All toGroup:@"default"];
+}
+
++ (void)logInfo:(NSString *)info withType:(SDLDebugType)type {
+ [self logInfo:info withType:type toOutput:SDLDebugOutput_All toGroup:@"default"];
+}
+
++ (void)logInfo:(NSString *)info withType:(SDLDebugType)type toOutput:(SDLDebugOutput)output {
+ [SDLDebugTool logInfo:info withType:type toOutput:output toGroup:@"default"];
+}
+
++ (void)logInfo:(NSString *)info andBinaryData:(NSData *)data withType:(SDLDebugType)type toOutput:(SDLDebugOutput)output {
+
+ // convert binary data to string, append the two strings, then pass to usual log method.
+ NSMutableString *outputString = [[NSMutableString alloc] init];
+ if (info) {
+ [outputString appendString:info];
+ }
+
+ if (data) {
+ NSString *dataString = [SDLHexUtility getHexString:data];
+ if (dataString) {
+ [outputString appendString:dataString];
+ }
+ }
+
+ [SDLDebugTool logInfo:outputString withType:type toOutput:output toGroup:@"default"];
+}
+
+// The designated logInfo method. All outputs should be performed here.
++ (void)logInfo:(NSString *)info withType:(SDLDebugType)type toOutput:(SDLDebugOutput)output toGroup:(NSString *)consoleGroupName {
+
+ // Format the message, start with type
+ NSMutableString *outputString = [NSMutableString stringWithFormat:@"[%@] %@", [SDLDebugTool stringForDebugType:type], info];
+
+
+ ////////////////////////////////////////////////
+ //
+ // Output to the various destinations
+ //
+ ////////////////////////////////////////////////
+
+ //Output To DeviceConsole
+ if (output & SDLDebugOutput_DeviceConsole) {
+ NSLog(@"%@", outputString);
+ }
+
+ //Output To DebugToolConsoles
+ if (output & SDLDebugOutput_DebugToolConsole) {
+ NSSet *consoleListeners = [self getConsoleListenersForGroup:consoleGroupName];
+ for (NSObject<SDLDebugToolConsole>* console in consoleListeners) {
+ [console logInfo:outputString];
+ }
+ }
+
+ //Output To LogFile
+ if (output & SDLDebugOutput_File) {
+ [SDLDebugTool writeToLogFile:outputString];
+ }
+
+ //Output To Siphon
+ [SDLSiphonServer init];
+ [SDLSiphonServer _siphonNSLogData:outputString];
+
+}
+
+
+#pragma mark - file handling
++ (void)enableDebugToLogFile{
+ debugToLogFile = true;
+
+ [SDLDebugTool logInfo:@"Log File Enabled" withType:SDLDebugType_Debug];
+
+ //Delete Log File If It Exists
+ NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+ NSString *documentsDirectory = [paths objectAtIndex:0];
+ NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"smartdevicelink.log"];
+
+ NSFileManager *manager = [NSFileManager defaultManager];
+ if ([manager fileExistsAtPath:filePath]) {
+ [SDLDebugTool logInfo:@"Log File Exisits, Deleteing" withType:SDLDebugType_Debug];
+ [manager removeItemAtPath:filePath error:nil];
+ }
+
+}
+
++ (void)disableDebugToLogFile {
+ debugToLogFile = false;
+}
+
++ (void)writeToLogFile:(NSString *)info {
+
+ // Warning: do not call any logInfo method from here. recursion of death.
+
+ if (!debugToLogFile || info == NULL || info.length == 0) {
+ return;
+ }
+
+ // Create timestamp string, add it in front of the message to be logged
+ NSDate *currentDate = [NSDate date];
+ NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
+ [dateFormatter setDateFormat:@"MM/dd/YY HH:mm:ss.SSS"];
+ NSString *dateString = [dateFormatter stringFromDate:currentDate];
+ NSString *outputString = [dateString stringByAppendingFormat:@": %@\n", info ];
+
+ // file write takes an NSData, so convert string to data.
+ NSData *dataToLog = [outputString dataUsingEncoding:NSUTF8StringEncoding];
+
+ // If open/create file and write
+ NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+ NSString *documentsDirectory = [paths objectAtIndex:0];
+ NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"smartdevicelink.log"];
+
+ NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:filePath];
+ if (fileHandle){
+ [fileHandle seekToEndOfFile];
+ [fileHandle writeData:dataToLog];
+ [fileHandle closeFile];
+ }
+ else {
+ [dataToLog writeToFile:filePath atomically:NO];
+ }
+
+}
+
+
+#pragma mark - Helper Methods
++(NSString *) stringForDebugType:(SDLDebugType) debugType{
+
+ switch (debugType) {
+ case SDLDebugType_Debug:
+ return @"DBG";
+ break;
+ case SDLDebugType_Transport_iAP:
+ return @"iAP";
+ break;
+ case SDLDebugType_Transport_TCP:
+ return @"TCP";
+ break;
+ case SDLDebugType_Protocol:
+ return @"Pro";
+ break;
+ case SDLDebugType_RPC:
+ return @"RPC";
+ break;
+ case SDLDebugType_APP:
+ return @"APP";
+ break;
+
+ default:
+ return @"Invalid DebugType";
+ break;
+ }
+
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDecoder.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDecoder.h
new file mode 100644
index 000000000..2d5692d6e
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDecoder.h
@@ -0,0 +1,11 @@
+// SDLDecoder.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+@import Foundation;
+
+@protocol SDLDecoder
+
+-(NSDictionary*) decode:(NSData*) msgBytes;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteCommand.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteCommand.h
new file mode 100644
index 000000000..37129e7e6
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteCommand.h
@@ -0,0 +1,15 @@
+// SDLDeleteCommand.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLDeleteCommand : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* cmdID;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteCommand.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteCommand.m
new file mode 100644
index 000000000..85b38e6a7
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteCommand.m
@@ -0,0 +1,33 @@
+// SDLDeleteCommand.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLDeleteCommand.h"
+
+#import "SDLNames.h"
+
+@implementation SDLDeleteCommand
+
+-(id) init {
+ if (self = [super initWithName:NAMES_DeleteCommand]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setCmdID:(NSNumber*) cmdID {
+ if (cmdID != nil) {
+ [parameters setObject:cmdID forKey:NAMES_cmdID];
+ } else {
+ [parameters removeObjectForKey:NAMES_cmdID];
+ }
+}
+
+-(NSNumber*) cmdID {
+ return [parameters objectForKey:NAMES_cmdID];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteCommandResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteCommandResponse.h
new file mode 100644
index 000000000..0cc8518cd
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteCommandResponse.h
@@ -0,0 +1,13 @@
+// SDLDeleteCommandResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLDeleteCommandResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteCommandResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteCommandResponse.m
new file mode 100644
index 000000000..e6f24d0fc
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteCommandResponse.m
@@ -0,0 +1,21 @@
+// SDLDeleteCommandResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLDeleteCommandResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLDeleteCommandResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_DeleteCommand]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteFile.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteFile.h
new file mode 100644
index 000000000..2e1303699
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteFile.h
@@ -0,0 +1,15 @@
+// SDLDeleteFile.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLDeleteFile : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSString* syncFileName;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteFile.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteFile.m
new file mode 100644
index 000000000..3d20d4f71
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteFile.m
@@ -0,0 +1,33 @@
+// SDLDeleteFile.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLDeleteFile.h"
+
+#import "SDLNames.h"
+
+@implementation SDLDeleteFile
+
+-(id) init {
+ if (self = [super initWithName:NAMES_DeleteFile]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setSyncFileName:(NSString*) syncFileName {
+ if (syncFileName != nil) {
+ [parameters setObject:syncFileName forKey:NAMES_syncFileName];
+ } else {
+ [parameters removeObjectForKey:NAMES_syncFileName];
+ }
+}
+
+-(NSString*) syncFileName {
+ return [parameters objectForKey:NAMES_syncFileName];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteFileResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteFileResponse.h
new file mode 100644
index 000000000..32df9b91a
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteFileResponse.h
@@ -0,0 +1,15 @@
+// SDLDeleteFileResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLDeleteFileResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* spaceAvailable;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteFileResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteFileResponse.m
new file mode 100644
index 000000000..a5293a027
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteFileResponse.m
@@ -0,0 +1,33 @@
+// SDLDeleteFileResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLDeleteFileResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLDeleteFileResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_DeleteFile]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setSpaceAvailable:(NSNumber*) spaceAvailable {
+ if (spaceAvailable != nil) {
+ [parameters setObject:spaceAvailable forKey:NAMES_spaceAvailable];
+ } else {
+ [parameters removeObjectForKey:NAMES_spaceAvailable];
+ }
+}
+
+-(NSNumber*) spaceAvailable {
+ return [parameters objectForKey:NAMES_spaceAvailable];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteInteractionChoiceSet.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteInteractionChoiceSet.h
new file mode 100644
index 000000000..ab1031713
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteInteractionChoiceSet.h
@@ -0,0 +1,15 @@
+// SDLDeleteInteractionChoiceSet.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLDeleteInteractionChoiceSet : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* interactionChoiceSetID;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteInteractionChoiceSet.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteInteractionChoiceSet.m
new file mode 100644
index 000000000..99ee55ce7
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteInteractionChoiceSet.m
@@ -0,0 +1,33 @@
+// SDLDeleteInteractionChoiceSet.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLDeleteInteractionChoiceSet.h"
+
+#import "SDLNames.h"
+
+@implementation SDLDeleteInteractionChoiceSet
+
+-(id) init {
+ if (self = [super initWithName:NAMES_DeleteInteractionChoiceSet]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setInteractionChoiceSetID:(NSNumber*) interactionChoiceSetID {
+ if (interactionChoiceSetID != nil) {
+ [parameters setObject:interactionChoiceSetID forKey:NAMES_interactionChoiceSetID];
+ } else {
+ [parameters removeObjectForKey:NAMES_interactionChoiceSetID];
+ }
+}
+
+-(NSNumber*) interactionChoiceSetID {
+ return [parameters objectForKey:NAMES_interactionChoiceSetID];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h
new file mode 100644
index 000000000..ec8f53847
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h
@@ -0,0 +1,13 @@
+// SDLDeleteInteractionChoiceSetResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLDeleteInteractionChoiceSetResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m
new file mode 100644
index 000000000..7516fb8b3
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m
@@ -0,0 +1,21 @@
+// SDLDeleteInteractionChoiceSetResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLDeleteInteractionChoiceSetResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLDeleteInteractionChoiceSetResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_DeleteInteractionChoiceSet]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteSubMenu.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteSubMenu.h
new file mode 100644
index 000000000..5a0aee05d
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteSubMenu.h
@@ -0,0 +1,15 @@
+// SDLDeleteSubMenu.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLDeleteSubMenu : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* menuID;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteSubMenu.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteSubMenu.m
new file mode 100644
index 000000000..e5b005390
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteSubMenu.m
@@ -0,0 +1,33 @@
+// SDLDeleteSubMenu.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLDeleteSubMenu.h"
+
+#import "SDLNames.h"
+
+@implementation SDLDeleteSubMenu
+
+-(id) init {
+ if (self = [super initWithName:NAMES_DeleteSubMenu]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setMenuID:(NSNumber*) menuID {
+ if (menuID != nil) {
+ [parameters setObject:menuID forKey:NAMES_menuID];
+ } else {
+ [parameters removeObjectForKey:NAMES_menuID];
+ }
+}
+
+-(NSNumber*) menuID {
+ return [parameters objectForKey:NAMES_menuID];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteSubMenuResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteSubMenuResponse.h
new file mode 100644
index 000000000..e0e62dabe
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteSubMenuResponse.h
@@ -0,0 +1,13 @@
+// SDLDeleteSubMenuResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLDeleteSubMenuResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteSubMenuResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteSubMenuResponse.m
new file mode 100644
index 000000000..ec86779d1
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeleteSubMenuResponse.m
@@ -0,0 +1,21 @@
+// SDLDeleteSubMenuResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLDeleteSubMenuResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLDeleteSubMenuResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_DeleteSubMenu]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeviceInfo.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeviceInfo.h
new file mode 100644
index 000000000..66e1bc8bc
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeviceInfo.h
@@ -0,0 +1,20 @@
+// SDLDeviceInfo.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+@interface SDLDeviceInfo : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSString* hardware;
+@property(strong) NSString* firmwareRev;
+@property(strong) NSString* os;
+@property(strong) NSString* osVersion;
+@property(strong) NSString* carrier;
+@property(strong) NSNumber* maxNumberRFCOMMPorts;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeviceInfo.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeviceInfo.m
new file mode 100644
index 000000000..f7614b166
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeviceInfo.m
@@ -0,0 +1,93 @@
+// SDLDeviceInfo.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLDeviceInfo.h"
+
+#import "SDLNames.h"
+
+@implementation SDLDeviceInfo
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setHardware:(NSString*) hardware {
+ if (hardware != nil) {
+ [store setObject:hardware forKey:NAMES_hardware];
+ } else {
+ [store removeObjectForKey:NAMES_hardware];
+ }
+}
+
+-(NSString*) hardware {
+ return [store objectForKey:NAMES_hardware];
+}
+
+-(void) setFirmwareRev:(NSString*) firmwareRev {
+ if (firmwareRev != nil) {
+ [store setObject:firmwareRev forKey:NAMES_firmwareRev];
+ } else {
+ [store removeObjectForKey:NAMES_firmwareRev];
+ }
+}
+
+-(NSString*) firmwareRev {
+ return [store objectForKey:NAMES_firmwareRev];
+}
+
+-(void) setOs:(NSString*) os {
+ if (os != nil) {
+ [store setObject:os forKey:NAMES_os];
+ } else {
+ [store removeObjectForKey:NAMES_os];
+ }
+}
+
+-(NSString*) os {
+ return [store objectForKey:NAMES_os];
+}
+
+-(void) setOsVersion:(NSString*) osVersion {
+ if (osVersion != nil) {
+ [store setObject:osVersion forKey:NAMES_osVersion];
+ } else {
+ [store removeObjectForKey:NAMES_osVersion];
+ }
+}
+
+-(NSString*) osVersion {
+ return [store objectForKey:NAMES_osVersion];
+}
+
+-(void) setCarrier:(NSString*) carrier {
+ if (carrier != nil) {
+ [store setObject:carrier forKey:NAMES_carrier];
+ } else {
+ [store removeObjectForKey:NAMES_carrier];
+ }
+}
+
+-(NSString*) carrier {
+ return [store objectForKey:NAMES_carrier];
+}
+
+-(void) setMaxNumberRFCOMMPorts:(NSNumber*) maxNumberRFCOMMPorts {
+ if (maxNumberRFCOMMPorts != nil) {
+ [store setObject:maxNumberRFCOMMPorts forKey:NAMES_maxNumberRFCOMMPorts];
+ } else {
+ [store removeObjectForKey:NAMES_maxNumberRFCOMMPorts];
+ }
+}
+
+-(NSNumber*) maxNumberRFCOMMPorts {
+ return [store objectForKey:NAMES_maxNumberRFCOMMPorts];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeviceLevelStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeviceLevelStatus.h
new file mode 100644
index 000000000..cd9f775c3
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeviceLevelStatus.h
@@ -0,0 +1,20 @@
+// SDLDeviceLevelStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLDeviceLevelStatus : SDLEnum {}
+
++(SDLDeviceLevelStatus*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLDeviceLevelStatus*) ZERO_LEVEL_BARS;
++(SDLDeviceLevelStatus*) ONE_LEVEL_BARS;
++(SDLDeviceLevelStatus*) TWO_LEVEL_BARS;
++(SDLDeviceLevelStatus*) THREE_LEVEL_BARS;
++(SDLDeviceLevelStatus*) FOUR_LEVEL_BARS;
++(SDLDeviceLevelStatus*) NOT_PROVIDED;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeviceLevelStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeviceLevelStatus.m
new file mode 100644
index 000000000..96e0f1acf
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeviceLevelStatus.m
@@ -0,0 +1,83 @@
+// SDLDeviceLevelStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLDeviceLevelStatus.h"
+
+SDLDeviceLevelStatus* SDLDeviceLevelStatus_ZERO_LEVEL_BARS = nil;
+SDLDeviceLevelStatus* SDLDeviceLevelStatus_ONE_LEVEL_BARS = nil;
+SDLDeviceLevelStatus* SDLDeviceLevelStatus_TWO_LEVEL_BARS = nil;
+SDLDeviceLevelStatus* SDLDeviceLevelStatus_THREE_LEVEL_BARS = nil;
+SDLDeviceLevelStatus* SDLDeviceLevelStatus_FOUR_LEVEL_BARS = nil;
+SDLDeviceLevelStatus* SDLDeviceLevelStatus_NOT_PROVIDED = nil;
+
+NSMutableArray* SDLDeviceLevelStatus_values = nil;
+
+@implementation SDLDeviceLevelStatus
+
++(SDLDeviceLevelStatus*) valueOf:(NSString*) value {
+ for (SDLDeviceLevelStatus* item in SDLDeviceLevelStatus.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLDeviceLevelStatus_values == nil) {
+ SDLDeviceLevelStatus_values = [[NSMutableArray alloc] initWithObjects:
+ SDLDeviceLevelStatus.ZERO_LEVEL_BARS,
+ SDLDeviceLevelStatus.ONE_LEVEL_BARS,
+ SDLDeviceLevelStatus.TWO_LEVEL_BARS,
+ SDLDeviceLevelStatus.THREE_LEVEL_BARS,
+ SDLDeviceLevelStatus.FOUR_LEVEL_BARS,
+ SDLDeviceLevelStatus.NOT_PROVIDED,
+ nil];
+ }
+ return SDLDeviceLevelStatus_values;
+}
+
++(SDLDeviceLevelStatus*) ZERO_LEVEL_BARS {
+ if (SDLDeviceLevelStatus_ZERO_LEVEL_BARS == nil) {
+ SDLDeviceLevelStatus_ZERO_LEVEL_BARS = [[SDLDeviceLevelStatus alloc] initWithValue:@"ZERO_LEVEL_BARS"];
+ }
+ return SDLDeviceLevelStatus_ZERO_LEVEL_BARS;
+}
+
++(SDLDeviceLevelStatus*) ONE_LEVEL_BARS {
+ if (SDLDeviceLevelStatus_ONE_LEVEL_BARS == nil) {
+ SDLDeviceLevelStatus_ONE_LEVEL_BARS = [[SDLDeviceLevelStatus alloc] initWithValue:@"ONE_LEVEL_BARS"];
+ }
+ return SDLDeviceLevelStatus_ONE_LEVEL_BARS;
+}
+
++(SDLDeviceLevelStatus*) TWO_LEVEL_BARS {
+ if (SDLDeviceLevelStatus_TWO_LEVEL_BARS == nil) {
+ SDLDeviceLevelStatus_TWO_LEVEL_BARS = [[SDLDeviceLevelStatus alloc] initWithValue:@"TWO_LEVEL_BARS"];
+ }
+ return SDLDeviceLevelStatus_TWO_LEVEL_BARS;
+}
+
++(SDLDeviceLevelStatus*) THREE_LEVEL_BARS {
+ if (SDLDeviceLevelStatus_THREE_LEVEL_BARS == nil) {
+ SDLDeviceLevelStatus_THREE_LEVEL_BARS = [[SDLDeviceLevelStatus alloc] initWithValue:@"THREE_LEVEL_BARS"];
+ }
+ return SDLDeviceLevelStatus_THREE_LEVEL_BARS;
+}
+
++(SDLDeviceLevelStatus*) FOUR_LEVEL_BARS {
+ if (SDLDeviceLevelStatus_FOUR_LEVEL_BARS == nil) {
+ SDLDeviceLevelStatus_FOUR_LEVEL_BARS = [[SDLDeviceLevelStatus alloc] initWithValue:@"FOUR_LEVEL_BARS"];
+ }
+ return SDLDeviceLevelStatus_FOUR_LEVEL_BARS;
+}
+
++(SDLDeviceLevelStatus*) NOT_PROVIDED {
+ if (SDLDeviceLevelStatus_NOT_PROVIDED == nil) {
+ SDLDeviceLevelStatus_NOT_PROVIDED = [[SDLDeviceLevelStatus alloc] initWithValue:@"NOT_PROVIDED"];
+ }
+ return SDLDeviceLevelStatus_NOT_PROVIDED;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeviceStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeviceStatus.h
new file mode 100644
index 000000000..2eaba47b5
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeviceStatus.h
@@ -0,0 +1,28 @@
+// SDLDeviceStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLDeviceLevelStatus.h"
+#import "SDLPrimaryAudioSource.h"
+
+@interface SDLDeviceStatus : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* voiceRecOn;
+@property(strong) NSNumber* btIconOn;
+@property(strong) NSNumber* callActive;
+@property(strong) NSNumber* phoneRoaming;
+@property(strong) NSNumber* textMsgAvailable;
+@property(strong) SDLDeviceLevelStatus* battLevelStatus;
+@property(strong) NSNumber* stereoAudioOutputMuted;
+@property(strong) NSNumber* monoAudioOutputMuted;
+@property(strong) SDLDeviceLevelStatus* signalLevelStatus;
+@property(strong) SDLPrimaryAudioSource* primaryAudioSource;
+@property(strong) NSNumber* eCallEventActive;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeviceStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeviceStatus.m
new file mode 100644
index 000000000..15a3ec251
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDeviceStatus.m
@@ -0,0 +1,168 @@
+// SDLDeviceStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLDeviceStatus.h"
+
+#import "SDLNames.h"
+
+@implementation SDLDeviceStatus
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setVoiceRecOn:(NSNumber*) voiceRecOn {
+ if (voiceRecOn != nil) {
+ [store setObject:voiceRecOn forKey:NAMES_voiceRecOn];
+ } else {
+ [store removeObjectForKey:NAMES_voiceRecOn];
+ }
+}
+
+-(NSNumber*) voiceRecOn {
+ return [store objectForKey:NAMES_voiceRecOn];
+}
+
+-(void) setBtIconOn:(NSNumber*) btIconOn {
+ if (btIconOn != nil) {
+ [store setObject:btIconOn forKey:NAMES_btIconOn];
+ } else {
+ [store removeObjectForKey:NAMES_btIconOn];
+ }
+}
+
+-(NSNumber*) btIconOn {
+ return [store objectForKey:NAMES_btIconOn];
+}
+
+-(void) setCallActive:(NSNumber*) callActive {
+ if (callActive != nil) {
+ [store setObject:callActive forKey:NAMES_callActive];
+ } else {
+ [store removeObjectForKey:NAMES_callActive];
+ }
+}
+
+-(NSNumber*) callActive {
+ return [store objectForKey:NAMES_callActive];
+}
+
+-(void) setPhoneRoaming:(NSNumber*) phoneRoaming {
+ if (phoneRoaming != nil) {
+ [store setObject:phoneRoaming forKey:NAMES_phoneRoaming];
+ } else {
+ [store removeObjectForKey:NAMES_phoneRoaming];
+ }
+}
+
+-(NSNumber*) phoneRoaming {
+ return [store objectForKey:NAMES_phoneRoaming];
+}
+
+-(void) setTextMsgAvailable:(NSNumber*) textMsgAvailable {
+ if (textMsgAvailable != nil) {
+ [store setObject:textMsgAvailable forKey:NAMES_textMsgAvailable];
+ } else {
+ [store removeObjectForKey:NAMES_textMsgAvailable];
+ }
+}
+
+-(NSNumber*) textMsgAvailable {
+ return [store objectForKey:NAMES_textMsgAvailable];
+}
+
+-(void) setBattLevelStatus:(SDLDeviceLevelStatus*) battLevelStatus {
+ if (battLevelStatus != nil) {
+ [store setObject:battLevelStatus forKey:NAMES_battLevelStatus];
+ } else {
+ [store removeObjectForKey:NAMES_battLevelStatus];
+ }
+}
+
+-(SDLDeviceLevelStatus*) battLevelStatus {
+ NSObject* obj = [store objectForKey:NAMES_battLevelStatus];
+ if ([obj isKindOfClass:SDLDeviceLevelStatus.class]) {
+ return (SDLDeviceLevelStatus*)obj;
+ } else {
+ return [SDLDeviceLevelStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setStereoAudioOutputMuted:(NSNumber*) stereoAudioOutputMuted {
+ if (stereoAudioOutputMuted != nil) {
+ [store setObject:stereoAudioOutputMuted forKey:NAMES_stereoAudioOutputMuted];
+ } else {
+ [store removeObjectForKey:NAMES_stereoAudioOutputMuted];
+ }
+}
+
+-(NSNumber*) stereoAudioOutputMuted {
+ return [store objectForKey:NAMES_stereoAudioOutputMuted];
+}
+
+-(void) setMonoAudioOutputMuted:(NSNumber*) monoAudioOutputMuted {
+ if (monoAudioOutputMuted != nil) {
+ [store setObject:monoAudioOutputMuted forKey:NAMES_monoAudioOutputMuted];
+ } else {
+ [store removeObjectForKey:NAMES_monoAudioOutputMuted];
+ }
+}
+
+-(NSNumber*) monoAudioOutputMuted {
+ return [store objectForKey:NAMES_monoAudioOutputMuted];
+}
+
+-(void) setSignalLevelStatus:(SDLDeviceLevelStatus*) signalLevelStatus {
+ if (signalLevelStatus != nil) {
+ [store setObject:signalLevelStatus forKey:NAMES_signalLevelStatus];
+ } else {
+ [store removeObjectForKey:NAMES_signalLevelStatus];
+ }
+}
+
+-(SDLDeviceLevelStatus*) signalLevelStatus {
+ NSObject* obj = [store objectForKey:NAMES_signalLevelStatus];
+ if ([obj isKindOfClass:SDLDeviceLevelStatus.class]) {
+ return (SDLDeviceLevelStatus*)obj;
+ } else {
+ return [SDLDeviceLevelStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setPrimaryAudioSource:(SDLPrimaryAudioSource*) primaryAudioSource {
+ if (primaryAudioSource != nil) {
+ [store setObject:primaryAudioSource forKey:NAMES_primaryAudioSource];
+ } else {
+ [store removeObjectForKey:NAMES_primaryAudioSource];
+ }
+}
+
+-(SDLPrimaryAudioSource*) primaryAudioSource {
+ NSObject* obj = [store objectForKey:NAMES_primaryAudioSource];
+ if ([obj isKindOfClass:SDLPrimaryAudioSource.class]) {
+ return (SDLPrimaryAudioSource*)obj;
+ } else {
+ return [SDLPrimaryAudioSource valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setECallEventActive:(NSNumber*) eCallEventActive {
+ if (eCallEventActive != nil) {
+ [store setObject:eCallEventActive forKey:NAMES_eCallEventActive];
+ } else {
+ [store removeObjectForKey:NAMES_eCallEventActive];
+ }
+}
+
+-(NSNumber*) eCallEventActive {
+ return [store objectForKey:NAMES_eCallEventActive];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDiagnosticMessage.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDiagnosticMessage.h
new file mode 100644
index 000000000..d24469c58
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDiagnosticMessage.h
@@ -0,0 +1,17 @@
+// SDLDiagnosticMessage.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLDiagnosticMessage : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* targetID;
+@property(strong) NSNumber* messageLength;
+@property(strong) NSMutableArray* messageData;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDiagnosticMessage.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDiagnosticMessage.m
new file mode 100644
index 000000000..50713c5bc
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDiagnosticMessage.m
@@ -0,0 +1,57 @@
+// SDLDiagnosticMessage.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLDiagnosticMessage.h"
+
+#import "SDLNames.h"
+
+@implementation SDLDiagnosticMessage
+
+-(id) init {
+ if (self = [super initWithName:NAMES_DiagnosticMessage]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setTargetID:(NSNumber*) targetID {
+ if (targetID != nil) {
+ [parameters setObject:targetID forKey:NAMES_targetID];
+ } else {
+ [parameters removeObjectForKey:NAMES_targetID];
+ }
+}
+
+-(NSNumber*) targetID {
+ return [parameters objectForKey:NAMES_targetID];
+}
+
+-(void) setMessageLength:(NSNumber*) messageLength {
+ if (messageLength != nil) {
+ [parameters setObject:messageLength forKey:NAMES_messageLength];
+ } else {
+ [parameters removeObjectForKey:NAMES_messageLength];
+ }
+}
+
+-(NSNumber*) messageLength {
+ return [parameters objectForKey:NAMES_messageLength];
+}
+
+-(void) setMessageData:(NSMutableArray*) messageData {
+ if (messageData != nil) {
+ [parameters setObject:messageData forKey:NAMES_messageData];
+ } else {
+ [parameters removeObjectForKey:NAMES_messageData];
+ }
+}
+
+-(NSMutableArray*) messageData {
+ return [parameters objectForKey:NAMES_messageData];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDiagnosticMessageResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDiagnosticMessageResponse.h
new file mode 100644
index 000000000..0ee63d47a
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDiagnosticMessageResponse.h
@@ -0,0 +1,15 @@
+// SDLDiagnosticMessageResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLDiagnosticMessageResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSMutableArray* messageDataResult;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDiagnosticMessageResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDiagnosticMessageResponse.m
new file mode 100644
index 000000000..4f1286e72
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDiagnosticMessageResponse.m
@@ -0,0 +1,33 @@
+// SDLDiagnosticMessageResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLDiagnosticMessageResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLDiagnosticMessageResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_DiagnosticMessage]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setMessageDataResult:(NSMutableArray*) messageDataResult {
+ if (messageDataResult != nil) {
+ [parameters setObject:messageDataResult forKey:NAMES_messageDataResult];
+ } else {
+ [parameters removeObjectForKey:NAMES_messageDataResult];
+ }
+}
+
+-(NSMutableArray*) messageDataResult {
+ return [parameters objectForKey:NAMES_messageDataResult];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDimension.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDimension.h
new file mode 100644
index 000000000..038966415
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDimension.h
@@ -0,0 +1,17 @@
+// SDLDimension.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLDimension : SDLEnum {}
+
++(SDLDimension*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLDimension*) NO_FIX;
++(SDLDimension*) _2D;
++(SDLDimension*) _3D;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDimension.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDimension.m
new file mode 100644
index 000000000..98abf6611
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDimension.m
@@ -0,0 +1,56 @@
+// SDLDimension.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLDimension.h"
+
+SDLDimension* SDLDimension_NO_FIX = nil;
+SDLDimension* SDLDimension_2D = nil;
+SDLDimension* SDLDimension_3D = nil;
+
+NSMutableArray* SDLDimension_values = nil;
+
+@implementation SDLDimension
+
++(SDLDimension*) valueOf:(NSString*) value {
+ for (SDLDimension* item in SDLDimension.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLDimension_values == nil) {
+ SDLDimension_values = [[NSMutableArray alloc] initWithObjects:
+ SDLDimension.NO_FIX,
+ SDLDimension._2D,
+ SDLDimension._3D,
+ nil];
+ }
+ return SDLDimension_values;
+}
+
++(SDLDimension*) NO_FIX {
+ if (SDLDimension_NO_FIX == nil) {
+ SDLDimension_NO_FIX = [[SDLDimension alloc] initWithValue:@"NO_FIX"];
+ }
+ return SDLDimension_NO_FIX;
+}
+
++(SDLDimension*) _2D {
+ if (SDLDimension_2D == nil) {
+ SDLDimension_2D = [[SDLDimension alloc] initWithValue:@"2D"];
+ }
+ return SDLDimension_2D;
+}
+
++(SDLDimension*) _3D {
+ if (SDLDimension_3D == nil) {
+ SDLDimension_3D = [[SDLDimension alloc] initWithValue:@"3D"];
+ }
+ return SDLDimension_3D;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDisplayCapabilities.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDisplayCapabilities.h
new file mode 100644
index 000000000..ad46e41a2
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDisplayCapabilities.h
@@ -0,0 +1,25 @@
+// SDLDisplayCapabilities.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLDisplayType.h"
+#import "SDLScreenParams.h"
+
+@interface SDLDisplayCapabilities : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLDisplayType* displayType;
+@property(strong) NSMutableArray* textFields;
+@property(strong) NSMutableArray* imageFields;
+@property(strong) NSMutableArray* mediaClockFormats;
+@property(strong) NSNumber* graphicSupported;
+@property(strong) NSMutableArray* templatesAvailable;
+@property(strong) SDLScreenParams* screenParams;
+@property(strong) NSNumber* numCustomPresetsAvailable;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDisplayCapabilities.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDisplayCapabilities.m
new file mode 100644
index 000000000..893cfb021
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDisplayCapabilities.m
@@ -0,0 +1,157 @@
+// SDLDisplayCapabilities.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLDisplayCapabilities.h"
+
+#import "SDLNames.h"
+#import "SDLTextField.h"
+#import "SDLImageField.h"
+#import "SDLMediaClockFormat.h"
+
+@implementation SDLDisplayCapabilities
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setDisplayType:(SDLDisplayType*) displayType {
+ if (displayType != nil) {
+ [store setObject:displayType forKey:NAMES_displayType];
+ } else {
+ [store removeObjectForKey:NAMES_displayType];
+ }
+}
+
+-(SDLDisplayType*) displayType {
+ NSObject* obj = [store objectForKey:NAMES_displayType];
+ if ([obj isKindOfClass:SDLDisplayType.class]) {
+ return (SDLDisplayType*)obj;
+ } else {
+ return [SDLDisplayType valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setTextFields:(NSMutableArray*) textFields {
+ if (textFields != nil) {
+ [store setObject:textFields forKey:NAMES_textFields];
+ } else {
+ [store removeObjectForKey:NAMES_textFields];
+ }
+}
+
+-(NSMutableArray*) textFields {
+ NSMutableArray* array = [store objectForKey:NAMES_textFields];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLTextField.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLTextField alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+-(void) setImageFields:(NSMutableArray*) imageFields {
+ if (imageFields != nil) {
+ [store setObject:imageFields forKey:NAMES_imageFields];
+ } else {
+ [store removeObjectForKey:NAMES_imageFields];
+ }
+}
+
+-(NSMutableArray*) imageFields {
+ NSMutableArray* array = [store objectForKey:NAMES_imageFields];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLImageField.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLImageField alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+-(void) setMediaClockFormats:(NSMutableArray*) mediaClockFormats {
+ if (mediaClockFormats != nil) {
+ [store setObject:mediaClockFormats forKey:NAMES_mediaClockFormats];
+ } else {
+ [store removeObjectForKey:NAMES_mediaClockFormats];
+ }
+}
+
+-(NSMutableArray*) mediaClockFormats {
+ NSMutableArray* array = [store objectForKey:NAMES_mediaClockFormats];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLMediaClockFormat.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSString* enumString in array) {
+ [newList addObject:[SDLMediaClockFormat valueOf:enumString]];
+ }
+ return newList;
+ }
+}
+
+-(void) setGraphicSupported:(NSNumber*) graphicSupported {
+ if (graphicSupported != nil) {
+ [store setObject:graphicSupported forKey:NAMES_graphicSupported];
+ } else {
+ [store removeObjectForKey:NAMES_graphicSupported];
+ }
+}
+
+-(NSNumber*) graphicSupported {
+ return [store objectForKey:NAMES_graphicSupported];
+}
+
+-(void) setTemplatesAvailable:(NSMutableArray*) templatesAvailable {
+ if (templatesAvailable != nil) {
+ [store setObject:templatesAvailable forKey:NAMES_templatesAvailable];
+ } else {
+ [store removeObjectForKey:NAMES_templatesAvailable];
+ }
+}
+
+-(NSMutableArray*) templatesAvailable {
+ return [store objectForKey:NAMES_templatesAvailable];
+}
+
+-(void) setScreenParams:(SDLScreenParams*) screenParams {
+ if (screenParams != nil) {
+ [store setObject:screenParams forKey:NAMES_screenParams];
+ } else {
+ [store removeObjectForKey:NAMES_screenParams];
+ }
+}
+
+-(SDLScreenParams*) screenParams {
+ NSObject* obj = [store objectForKey:NAMES_screenParams];
+ if ([obj isKindOfClass:SDLScreenParams.class]) {
+ return (SDLScreenParams*)obj;
+ } else {
+ return [[SDLScreenParams alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setNumCustomPresetsAvailable:(NSNumber*) numCustomPresetsAvailable {
+ if (numCustomPresetsAvailable != nil) {
+ [store setObject:numCustomPresetsAvailable forKey:NAMES_numCustomPresetsAvailable];
+ } else {
+ [store removeObjectForKey:NAMES_numCustomPresetsAvailable];
+ }
+}
+
+-(NSNumber*) numCustomPresetsAvailable {
+ return [store objectForKey:NAMES_numCustomPresetsAvailable];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDisplayType.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDisplayType.h
new file mode 100644
index 000000000..d4f1eeee3
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDisplayType.h
@@ -0,0 +1,24 @@
+// SDLDisplayType.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLDisplayType : SDLEnum {}
+
++(SDLDisplayType*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLDisplayType*) CID;
++(SDLDisplayType*) TYPE2;
++(SDLDisplayType*) TYPE5;
++(SDLDisplayType*) NGN;
++(SDLDisplayType*) GEN2_8_DMA;
++(SDLDisplayType*) GEN2_6_DMA;
++(SDLDisplayType*) MFD3;
++(SDLDisplayType*) MFD4;
++(SDLDisplayType*) MFD5;
++(SDLDisplayType*) GEN3_8_INCH;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDisplayType.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDisplayType.m
new file mode 100644
index 000000000..12dee11e7
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDisplayType.m
@@ -0,0 +1,119 @@
+// SDLDisplayType.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLDisplayType.h"
+
+SDLDisplayType* SDLDisplayType_CID = nil;
+SDLDisplayType* SDLDisplayType_TYPE2 = nil;
+SDLDisplayType* SDLDisplayType_TYPE5 = nil;
+SDLDisplayType* SDLDisplayType_NGN = nil;
+SDLDisplayType* SDLDisplayType_GEN2_8_DMA = nil;
+SDLDisplayType* SDLDisplayType_GEN2_6_DMA = nil;
+SDLDisplayType* SDLDisplayType_MFD3 = nil;
+SDLDisplayType* SDLDisplayType_MFD4 = nil;
+SDLDisplayType* SDLDisplayType_MFD5 = nil;
+SDLDisplayType* SDLDisplayType_GEN3_8_INCH = nil;
+
+NSMutableArray* SDLDisplayType_values = nil;
+
+@implementation SDLDisplayType
+
++(SDLDisplayType*) valueOf:(NSString*) value {
+ for (SDLDisplayType* item in SDLDisplayType.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLDisplayType_values == nil) {
+ SDLDisplayType_values = [[NSMutableArray alloc] initWithObjects:
+ SDLDisplayType.CID,
+ SDLDisplayType.TYPE2,
+ SDLDisplayType.TYPE5,
+ SDLDisplayType.NGN,
+ SDLDisplayType.GEN2_8_DMA,
+ SDLDisplayType.GEN2_6_DMA,
+ SDLDisplayType.MFD3,
+ SDLDisplayType.MFD4,
+ SDLDisplayType.MFD5,
+ SDLDisplayType.GEN3_8_INCH,
+ nil];
+ }
+ return SDLDisplayType_values;
+}
+
++(SDLDisplayType*) CID {
+ if (SDLDisplayType_CID == nil) {
+ SDLDisplayType_CID = [[SDLDisplayType alloc] initWithValue:@"CID"];
+ }
+ return SDLDisplayType_CID;
+}
+
++(SDLDisplayType*) TYPE2 {
+ if (SDLDisplayType_TYPE2 == nil) {
+ SDLDisplayType_TYPE2 = [[SDLDisplayType alloc] initWithValue:@"TYPE2"];
+ }
+ return SDLDisplayType_TYPE2;
+}
+
++(SDLDisplayType*) TYPE5 {
+ if (SDLDisplayType_TYPE5 == nil) {
+ SDLDisplayType_TYPE5 = [[SDLDisplayType alloc] initWithValue:@"TYPE5"];
+ }
+ return SDLDisplayType_TYPE5;
+}
+
++(SDLDisplayType*) NGN {
+ if (SDLDisplayType_NGN == nil) {
+ SDLDisplayType_NGN = [[SDLDisplayType alloc] initWithValue:@"NGN"];
+ }
+ return SDLDisplayType_NGN;
+}
+
++(SDLDisplayType*) GEN2_8_DMA {
+ if (SDLDisplayType_GEN2_8_DMA == nil) {
+ SDLDisplayType_GEN2_8_DMA = [[SDLDisplayType alloc] initWithValue:@"GEN2_8_DMA"];
+ }
+ return SDLDisplayType_GEN2_8_DMA;
+}
+
++(SDLDisplayType*) GEN2_6_DMA {
+ if (SDLDisplayType_GEN2_6_DMA == nil) {
+ SDLDisplayType_GEN2_6_DMA = [[SDLDisplayType alloc] initWithValue:@"GEN2_6_DMA"];
+ }
+ return SDLDisplayType_GEN2_6_DMA;
+}
+
++(SDLDisplayType*) MFD3 {
+ if (SDLDisplayType_MFD3 == nil) {
+ SDLDisplayType_MFD3 = [[SDLDisplayType alloc] initWithValue:@"MFD3"];
+ }
+ return SDLDisplayType_MFD3;
+}
+
++(SDLDisplayType*) MFD4 {
+ if (SDLDisplayType_MFD4 == nil) {
+ SDLDisplayType_MFD4 = [[SDLDisplayType alloc] initWithValue:@"MFD4"];
+ }
+ return SDLDisplayType_MFD4;
+}
+
++(SDLDisplayType*) MFD5 {
+ if (SDLDisplayType_MFD5 == nil) {
+ SDLDisplayType_MFD5 = [[SDLDisplayType alloc] initWithValue:@"MFD5"];
+ }
+ return SDLDisplayType_MFD5;
+}
+
++(SDLDisplayType*) GEN3_8_INCH {
+ if (SDLDisplayType_GEN3_8_INCH == nil) {
+ SDLDisplayType_GEN3_8_INCH = [[SDLDisplayType alloc] initWithValue:@"GEN3_8-INCH"];
+ }
+ return SDLDisplayType_GEN3_8_INCH;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDriverDistractionState.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDriverDistractionState.h
new file mode 100644
index 000000000..39d434abd
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDriverDistractionState.h
@@ -0,0 +1,16 @@
+// SDLDriverDistractionState.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLDriverDistractionState : SDLEnum {}
+
++(SDLDriverDistractionState*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLDriverDistractionState*) DD_ON;
++(SDLDriverDistractionState*) DD_OFF;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLDriverDistractionState.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDriverDistractionState.m
new file mode 100644
index 000000000..d1a3d18e4
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLDriverDistractionState.m
@@ -0,0 +1,47 @@
+// SDLDriverDistractionState.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLDriverDistractionState.h"
+
+SDLDriverDistractionState* SDLDriverDistractionState_DD_ON = nil;
+SDLDriverDistractionState* SDLDriverDistractionState_DD_OFF = nil;
+
+NSMutableArray* SDLDriverDistractionState_values = nil;
+
+@implementation SDLDriverDistractionState
+
++(SDLDriverDistractionState*) valueOf:(NSString*) value {
+ for (SDLDriverDistractionState* item in SDLDriverDistractionState.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLDriverDistractionState_values == nil) {
+ SDLDriverDistractionState_values = [[NSMutableArray alloc] initWithObjects:
+ SDLDriverDistractionState.DD_ON,
+ SDLDriverDistractionState.DD_OFF,
+ nil];
+ }
+ return SDLDriverDistractionState_values;
+}
+
++(SDLDriverDistractionState*) DD_ON {
+ if (SDLDriverDistractionState_DD_ON == nil) {
+ SDLDriverDistractionState_DD_ON = [[SDLDriverDistractionState alloc] initWithValue:@"DD_ON"];
+ }
+ return SDLDriverDistractionState_DD_ON;
+}
+
++(SDLDriverDistractionState*) DD_OFF {
+ if (SDLDriverDistractionState_DD_OFF == nil) {
+ SDLDriverDistractionState_DD_OFF = [[SDLDriverDistractionState alloc] initWithValue:@"DD_OFF"];
+ }
+ return SDLDriverDistractionState_DD_OFF;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLECallConfirmationStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLECallConfirmationStatus.h
new file mode 100644
index 000000000..663f8285d
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLECallConfirmationStatus.h
@@ -0,0 +1,21 @@
+// SDLECallConfirmationStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLECallConfirmationStatus : SDLEnum {}
+
++(SDLECallConfirmationStatus*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLECallConfirmationStatus*) NORMAL;
++(SDLECallConfirmationStatus*) CALL_IN_PROGRESS;
++(SDLECallConfirmationStatus*) CALL_CANCELLED;
++(SDLECallConfirmationStatus*) CALL_COMPLETED;
++(SDLECallConfirmationStatus*) CALL_UNSUCCESSFUL;
++(SDLECallConfirmationStatus*) ECALL_CONFIGURED_OFF;
++(SDLECallConfirmationStatus*) CALL_COMPLETE_DTMF_TIMEOUT;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLECallConfirmationStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLECallConfirmationStatus.m
new file mode 100644
index 000000000..302b7a199
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLECallConfirmationStatus.m
@@ -0,0 +1,92 @@
+// SDLECallConfirmationStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLECallConfirmationStatus.h"
+
+SDLECallConfirmationStatus* SDLECallConfirmationStatus_NORMAL = nil;
+SDLECallConfirmationStatus* SDLECallConfirmationStatus_CALL_IN_PROGRESS = nil;
+SDLECallConfirmationStatus* SDLECallConfirmationStatus_CALL_CANCELLED = nil;
+SDLECallConfirmationStatus* SDLECallConfirmationStatus_CALL_COMPLETED = nil;
+SDLECallConfirmationStatus* SDLECallConfirmationStatus_CALL_UNSUCCESSFUL = nil;
+SDLECallConfirmationStatus* SDLECallConfirmationStatus_ECALL_CONFIGURED_OFF = nil;
+SDLECallConfirmationStatus* SDLECallConfirmationStatus_CALL_COMPLETE_DTMF_TIMEOUT = nil;
+
+NSMutableArray* SDLECallConfirmationStatus_values = nil;
+
+@implementation SDLECallConfirmationStatus
+
++(SDLECallConfirmationStatus*) valueOf:(NSString*) value {
+ for (SDLECallConfirmationStatus* item in SDLECallConfirmationStatus.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLECallConfirmationStatus_values == nil) {
+ SDLECallConfirmationStatus_values = [[NSMutableArray alloc] initWithObjects:
+ SDLECallConfirmationStatus.NORMAL,
+ SDLECallConfirmationStatus.CALL_IN_PROGRESS,
+ SDLECallConfirmationStatus.CALL_CANCELLED,
+ SDLECallConfirmationStatus.CALL_COMPLETED,
+ SDLECallConfirmationStatus.CALL_UNSUCCESSFUL,
+ SDLECallConfirmationStatus.ECALL_CONFIGURED_OFF,
+ SDLECallConfirmationStatus.CALL_COMPLETE_DTMF_TIMEOUT,
+ nil];
+ }
+ return SDLECallConfirmationStatus_values;
+}
+
++(SDLECallConfirmationStatus*) NORMAL {
+ if (SDLECallConfirmationStatus_NORMAL == nil) {
+ SDLECallConfirmationStatus_NORMAL = [[SDLECallConfirmationStatus alloc] initWithValue:@"NORMAL"];
+ }
+ return SDLECallConfirmationStatus_NORMAL;
+}
+
++(SDLECallConfirmationStatus*) CALL_IN_PROGRESS {
+ if (SDLECallConfirmationStatus_CALL_IN_PROGRESS == nil) {
+ SDLECallConfirmationStatus_CALL_IN_PROGRESS = [[SDLECallConfirmationStatus alloc] initWithValue:@"CALL_IN_PROGRESS"];
+ }
+ return SDLECallConfirmationStatus_CALL_IN_PROGRESS;
+}
+
++(SDLECallConfirmationStatus*) CALL_CANCELLED {
+ if (SDLECallConfirmationStatus_CALL_CANCELLED == nil) {
+ SDLECallConfirmationStatus_CALL_CANCELLED = [[SDLECallConfirmationStatus alloc] initWithValue:@"CALL_CANCELLED"];
+ }
+ return SDLECallConfirmationStatus_CALL_CANCELLED;
+}
+
++(SDLECallConfirmationStatus*) CALL_COMPLETED {
+ if (SDLECallConfirmationStatus_CALL_COMPLETED == nil) {
+ SDLECallConfirmationStatus_CALL_COMPLETED = [[SDLECallConfirmationStatus alloc] initWithValue:@"CALL_COMPLETED"];
+ }
+ return SDLECallConfirmationStatus_CALL_COMPLETED;
+}
+
++(SDLECallConfirmationStatus*) CALL_UNSUCCESSFUL {
+ if (SDLECallConfirmationStatus_CALL_UNSUCCESSFUL == nil) {
+ SDLECallConfirmationStatus_CALL_UNSUCCESSFUL = [[SDLECallConfirmationStatus alloc] initWithValue:@"CALL_UNSUCCESSFUL"];
+ }
+ return SDLECallConfirmationStatus_CALL_UNSUCCESSFUL;
+}
+
++(SDLECallConfirmationStatus*) ECALL_CONFIGURED_OFF {
+ if (SDLECallConfirmationStatus_ECALL_CONFIGURED_OFF == nil) {
+ SDLECallConfirmationStatus_ECALL_CONFIGURED_OFF = [[SDLECallConfirmationStatus alloc] initWithValue:@"ECALL_CONFIGURED_OFF"];
+ }
+ return SDLECallConfirmationStatus_ECALL_CONFIGURED_OFF;
+}
+
++(SDLECallConfirmationStatus*) CALL_COMPLETE_DTMF_TIMEOUT {
+ if (SDLECallConfirmationStatus_CALL_COMPLETE_DTMF_TIMEOUT == nil) {
+ SDLECallConfirmationStatus_CALL_COMPLETE_DTMF_TIMEOUT = [[SDLECallConfirmationStatus alloc] initWithValue:@"CALL_COMPLETE_DTMF_TIMEOUT"];
+ }
+ return SDLECallConfirmationStatus_CALL_COMPLETE_DTMF_TIMEOUT;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLECallInfo.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLECallInfo.h
new file mode 100644
index 000000000..2b43421b3
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLECallInfo.h
@@ -0,0 +1,20 @@
+// SDLECallInfo.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLVehicleDataNotificationStatus.h"
+#import "SDLECallConfirmationStatus.h"
+
+@interface SDLECallInfo : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLVehicleDataNotificationStatus* eCallNotificationStatus;
+@property(strong) SDLVehicleDataNotificationStatus* auxECallNotificationStatus;
+@property(strong) SDLECallConfirmationStatus* eCallConfirmationStatus;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLECallInfo.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLECallInfo.m
new file mode 100644
index 000000000..b5a24070e
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLECallInfo.m
@@ -0,0 +1,72 @@
+// SDLECallInfo.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLECallInfo.h"
+
+#import "SDLNames.h"
+
+@implementation SDLECallInfo
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setECallNotificationStatus:(SDLVehicleDataNotificationStatus*) eCallNotificationStatus {
+ if (eCallNotificationStatus != nil) {
+ [store setObject:eCallNotificationStatus forKey:NAMES_eCallNotificationStatus];
+ } else {
+ [store removeObjectForKey:NAMES_eCallNotificationStatus];
+ }
+}
+
+-(SDLVehicleDataNotificationStatus*) eCallNotificationStatus {
+ NSObject* obj = [store objectForKey:NAMES_eCallNotificationStatus];
+ if ([obj isKindOfClass:SDLVehicleDataNotificationStatus.class]) {
+ return (SDLVehicleDataNotificationStatus*)obj;
+ } else {
+ return [SDLVehicleDataNotificationStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setAuxECallNotificationStatus:(SDLVehicleDataNotificationStatus*) auxECallNotificationStatus {
+ if (auxECallNotificationStatus != nil) {
+ [store setObject:auxECallNotificationStatus forKey:NAMES_auxECallNotificationStatus];
+ } else {
+ [store removeObjectForKey:NAMES_auxECallNotificationStatus];
+ }
+}
+
+-(SDLVehicleDataNotificationStatus*) auxECallNotificationStatus {
+ NSObject* obj = [store objectForKey:NAMES_auxECallNotificationStatus];
+ if ([obj isKindOfClass:SDLVehicleDataNotificationStatus.class]) {
+ return (SDLVehicleDataNotificationStatus*)obj;
+ } else {
+ return [SDLVehicleDataNotificationStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setECallConfirmationStatus:(SDLECallConfirmationStatus*) eCallConfirmationStatus {
+ if (eCallConfirmationStatus != nil) {
+ [store setObject:eCallConfirmationStatus forKey:NAMES_eCallConfirmationStatus];
+ } else {
+ [store removeObjectForKey:NAMES_eCallConfirmationStatus];
+ }
+}
+
+-(SDLECallConfirmationStatus*) eCallConfirmationStatus {
+ NSObject* obj = [store objectForKey:NAMES_eCallConfirmationStatus];
+ if ([obj isKindOfClass:SDLECallConfirmationStatus.class]) {
+ return (SDLECallConfirmationStatus*)obj;
+ } else {
+ return [SDLECallConfirmationStatus valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLEmergencyEvent.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEmergencyEvent.h
new file mode 100644
index 000000000..a08c8fd6d
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEmergencyEvent.h
@@ -0,0 +1,23 @@
+// SDLEmergencyEvent.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLEmergencyEventType.h"
+#import "SDLFuelCutoffStatus.h"
+#import "SDLVehicleDataEventStatus.h"
+
+@interface SDLEmergencyEvent : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLEmergencyEventType* emergencyEventType;
+@property(strong) SDLFuelCutoffStatus* fuelCutoffStatus;
+@property(strong) SDLVehicleDataEventStatus* rolloverEvent;
+@property(strong) NSNumber* maximumChangeVelocity;
+@property(strong) SDLVehicleDataEventStatus* multipleEvents;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLEmergencyEvent.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEmergencyEvent.m
new file mode 100644
index 000000000..790e09125
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEmergencyEvent.m
@@ -0,0 +1,101 @@
+// SDLEmergencyEvent.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLEmergencyEvent.h"
+
+#import "SDLNames.h"
+
+@implementation SDLEmergencyEvent
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setEmergencyEventType:(SDLEmergencyEventType*) emergencyEventType {
+ if (emergencyEventType != nil) {
+ [store setObject:emergencyEventType forKey:NAMES_emergencyEventType];
+ } else {
+ [store removeObjectForKey:NAMES_emergencyEventType];
+ }
+}
+
+-(SDLEmergencyEventType*) emergencyEventType {
+ NSObject* obj = [store objectForKey:NAMES_emergencyEventType];
+ if ([obj isKindOfClass:SDLEmergencyEventType.class]) {
+ return (SDLEmergencyEventType*)obj;
+ } else {
+ return [SDLEmergencyEventType valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setFuelCutoffStatus:(SDLFuelCutoffStatus*) fuelCutoffStatus {
+ if (fuelCutoffStatus != nil) {
+ [store setObject:fuelCutoffStatus forKey:NAMES_fuelCutoffStatus];
+ } else {
+ [store removeObjectForKey:NAMES_fuelCutoffStatus];
+ }
+}
+
+-(SDLFuelCutoffStatus*) fuelCutoffStatus {
+ NSObject* obj = [store objectForKey:NAMES_fuelCutoffStatus];
+ if ([obj isKindOfClass:SDLFuelCutoffStatus.class]) {
+ return (SDLFuelCutoffStatus*)obj;
+ } else {
+ return [SDLFuelCutoffStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setRolloverEvent:(SDLVehicleDataEventStatus*) rolloverEvent {
+ if (rolloverEvent != nil) {
+ [store setObject:rolloverEvent forKey:NAMES_rolloverEvent];
+ } else {
+ [store removeObjectForKey:NAMES_rolloverEvent];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) rolloverEvent {
+ NSObject* obj = [store objectForKey:NAMES_rolloverEvent];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setMaximumChangeVelocity:(NSNumber*) maximumChangeVelocity {
+ if (maximumChangeVelocity != nil) {
+ [store setObject:maximumChangeVelocity forKey:NAMES_maximumChangeVelocity];
+ } else {
+ [store removeObjectForKey:NAMES_maximumChangeVelocity];
+ }
+}
+
+-(NSNumber*) maximumChangeVelocity {
+ return [store objectForKey:NAMES_maximumChangeVelocity];
+}
+
+-(void) setMultipleEvents:(SDLVehicleDataEventStatus*) multipleEvents {
+ if (multipleEvents != nil) {
+ [store setObject:multipleEvents forKey:NAMES_multipleEvents];
+ } else {
+ [store removeObjectForKey:NAMES_multipleEvents];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) multipleEvents {
+ NSObject* obj = [store objectForKey:NAMES_multipleEvents];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLEmergencyEventType.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEmergencyEventType.h
new file mode 100644
index 000000000..14e555e8b
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEmergencyEventType.h
@@ -0,0 +1,21 @@
+// SDLEmergencyEventType.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLEmergencyEventType : SDLEnum {}
+
++(SDLEmergencyEventType*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLEmergencyEventType*) NO_EVENT;
++(SDLEmergencyEventType*) FRONTAL;
++(SDLEmergencyEventType*) SIDE;
++(SDLEmergencyEventType*) REAR;
++(SDLEmergencyEventType*) ROLLOVER;
++(SDLEmergencyEventType*) NOT_SUPPORTED;
++(SDLEmergencyEventType*) FAULT;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLEmergencyEventType.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEmergencyEventType.m
new file mode 100644
index 000000000..65532116c
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEmergencyEventType.m
@@ -0,0 +1,92 @@
+// SDLEmergencyEventType.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLEmergencyEventType.h"
+
+SDLEmergencyEventType* SDLEmergencyEventType_NO_EVENT = nil;
+SDLEmergencyEventType* SDLEmergencyEventType_FRONTAL = nil;
+SDLEmergencyEventType* SDLEmergencyEventType_SIDE = nil;
+SDLEmergencyEventType* SDLEmergencyEventType_REAR = nil;
+SDLEmergencyEventType* SDLEmergencyEventType_ROLLOVER = nil;
+SDLEmergencyEventType* SDLEmergencyEventType_NOT_SUPPORTED = nil;
+SDLEmergencyEventType* SDLEmergencyEventType_FAULT = nil;
+
+NSMutableArray* SDLEmergencyEventType_values = nil;
+
+@implementation SDLEmergencyEventType
+
++(SDLEmergencyEventType*) valueOf:(NSString*) value {
+ for (SDLEmergencyEventType* item in SDLEmergencyEventType.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLEmergencyEventType_values == nil) {
+ SDLEmergencyEventType_values = [[NSMutableArray alloc] initWithObjects:
+ SDLEmergencyEventType.NO_EVENT,
+ SDLEmergencyEventType.FRONTAL,
+ SDLEmergencyEventType.SIDE,
+ SDLEmergencyEventType.REAR,
+ SDLEmergencyEventType.ROLLOVER,
+ SDLEmergencyEventType.NOT_SUPPORTED,
+ SDLEmergencyEventType.FAULT,
+ nil];
+ }
+ return SDLEmergencyEventType_values;
+}
+
++(SDLEmergencyEventType*) NO_EVENT {
+ if (SDLEmergencyEventType_NO_EVENT == nil) {
+ SDLEmergencyEventType_NO_EVENT = [[SDLEmergencyEventType alloc] initWithValue:@"NO_EVENT"];
+ }
+ return SDLEmergencyEventType_NO_EVENT;
+}
+
++(SDLEmergencyEventType*) FRONTAL {
+ if (SDLEmergencyEventType_FRONTAL == nil) {
+ SDLEmergencyEventType_FRONTAL = [[SDLEmergencyEventType alloc] initWithValue:@"FRONTAL"];
+ }
+ return SDLEmergencyEventType_FRONTAL;
+}
+
++(SDLEmergencyEventType*) SIDE {
+ if (SDLEmergencyEventType_SIDE == nil) {
+ SDLEmergencyEventType_SIDE = [[SDLEmergencyEventType alloc] initWithValue:@"SIDE"];
+ }
+ return SDLEmergencyEventType_SIDE;
+}
+
++(SDLEmergencyEventType*) REAR {
+ if (SDLEmergencyEventType_REAR == nil) {
+ SDLEmergencyEventType_REAR = [[SDLEmergencyEventType alloc] initWithValue:@"REAR"];
+ }
+ return SDLEmergencyEventType_REAR;
+}
+
++(SDLEmergencyEventType*) ROLLOVER {
+ if (SDLEmergencyEventType_ROLLOVER == nil) {
+ SDLEmergencyEventType_ROLLOVER = [[SDLEmergencyEventType alloc] initWithValue:@"ROLLOVER"];
+ }
+ return SDLEmergencyEventType_ROLLOVER;
+}
+
++(SDLEmergencyEventType*) NOT_SUPPORTED {
+ if (SDLEmergencyEventType_NOT_SUPPORTED == nil) {
+ SDLEmergencyEventType_NOT_SUPPORTED = [[SDLEmergencyEventType alloc] initWithValue:@"NOT_SUPPORTED"];
+ }
+ return SDLEmergencyEventType_NOT_SUPPORTED;
+}
+
++(SDLEmergencyEventType*) FAULT {
+ if (SDLEmergencyEventType_FAULT == nil) {
+ SDLEmergencyEventType_FAULT = [[SDLEmergencyEventType alloc] initWithValue:@"FAULT"];
+ }
+ return SDLEmergencyEventType_FAULT;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLEncodedSyncPData.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEncodedSyncPData.h
new file mode 100644
index 000000000..fd987664f
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEncodedSyncPData.h
@@ -0,0 +1,15 @@
+// SDLEncodedSyncPData.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLEncodedSyncPData : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSMutableArray* data;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLEncodedSyncPData.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEncodedSyncPData.m
new file mode 100644
index 000000000..19368af7c
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEncodedSyncPData.m
@@ -0,0 +1,33 @@
+// SDLEncodedSyncPData.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLEncodedSyncPData.h"
+
+#import "SDLNames.h"
+
+@implementation SDLEncodedSyncPData
+
+-(id) init {
+ if (self = [super initWithName:NAMES_EncodedSyncPData]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setData:(NSMutableArray*) data {
+ if (data != nil) {
+ [parameters setObject:data forKey:NAMES_data];
+ } else {
+ [parameters removeObjectForKey:NAMES_data];
+ }
+}
+
+-(NSMutableArray*) data {
+ return [parameters objectForKey:NAMES_data];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLEncodedSyncPDataResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEncodedSyncPDataResponse.h
new file mode 100644
index 000000000..8dab23afb
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEncodedSyncPDataResponse.h
@@ -0,0 +1,13 @@
+// SDLEncodedSyncPDataResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLEncodedSyncPDataResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLEncodedSyncPDataResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEncodedSyncPDataResponse.m
new file mode 100644
index 000000000..810004925
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEncodedSyncPDataResponse.m
@@ -0,0 +1,21 @@
+// SDLEncodedSyncPDataResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLEncodedSyncPDataResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLEncodedSyncPDataResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_EncodedSyncPData]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLEncoder.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEncoder.h
new file mode 100644
index 000000000..943995bcf
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEncoder.h
@@ -0,0 +1,11 @@
+// SDLEncoder.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+@import Foundation;
+
+@protocol SDLEncoder
+
+-(NSData*) encodeDictionary:(NSDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLEndAudioPassThru.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEndAudioPassThru.h
new file mode 100644
index 000000000..de0f23268
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEndAudioPassThru.h
@@ -0,0 +1,13 @@
+// SDLEndAudioPassThru.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLEndAudioPassThru : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLEndAudioPassThru.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEndAudioPassThru.m
new file mode 100644
index 000000000..901d16e14
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEndAudioPassThru.m
@@ -0,0 +1,21 @@
+// SDLEndAudioPassThru.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLEndAudioPassThru.h"
+
+#import "SDLNames.h"
+
+@implementation SDLEndAudioPassThru
+
+-(id) init {
+ if (self = [super initWithName:NAMES_EndAudioPassThru]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLEndAudioPassThruResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEndAudioPassThruResponse.h
new file mode 100644
index 000000000..33123caf6
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEndAudioPassThruResponse.h
@@ -0,0 +1,13 @@
+// SDLEndAudioPassThruResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLEndAudioPassThruResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLEndAudioPassThruResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEndAudioPassThruResponse.m
new file mode 100644
index 000000000..98423e7da
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEndAudioPassThruResponse.m
@@ -0,0 +1,21 @@
+// SDLEndAudioPassThruResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLEndAudioPassThruResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLEndAudioPassThruResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_EndAudioPassThru]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLEnum.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEnum.h
new file mode 100644
index 000000000..7e91c910a
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEnum.h
@@ -0,0 +1,16 @@
+// SDLEnum.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+@import Foundation;
+
+
+@interface SDLEnum : NSObject {
+ NSString* value;
+}
+
+-(id) initWithValue:(NSString*) value;
+
+@property(strong, readonly) NSString* value;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLEnum.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEnum.m
new file mode 100644
index 000000000..762a021e8
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLEnum.m
@@ -0,0 +1,22 @@
+// SDLEnum.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLEnum.h"
+
+@implementation SDLEnum
+
+@synthesize value;
+
+-(id) initWithValue:(NSString*) aValue {
+ if (self = [super init]) {
+ value = aValue;
+ }
+ return self;
+}
+
+-(NSString*) description {
+ return value;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLFileType.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLFileType.h
new file mode 100644
index 000000000..c8a851969
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLFileType.h
@@ -0,0 +1,22 @@
+// SDLFileType.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLFileType : SDLEnum {}
+
++(SDLFileType*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLFileType*) GRAPHIC_BMP;
++(SDLFileType*) GRAPHIC_JPEG;
++(SDLFileType*) GRAPHIC_PNG;
++(SDLFileType*) AUDIO_WAVE;
++(SDLFileType*) AUDIO_MP3;
++(SDLFileType*) AUDIO_AAC;
++(SDLFileType*) BINARY;
++(SDLFileType*) JSON;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLFileType.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLFileType.m
new file mode 100644
index 000000000..7aab5e551
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLFileType.m
@@ -0,0 +1,101 @@
+// SDLFileType.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLFileType.h"
+
+SDLFileType* SDLFileType_GRAPHIC_BMP = nil;
+SDLFileType* SDLFileType_GRAPHIC_JPEG = nil;
+SDLFileType* SDLFileType_GRAPHIC_PNG = nil;
+SDLFileType* SDLFileType_AUDIO_WAVE = nil;
+SDLFileType* SDLFileType_AUDIO_MP3 = nil;
+SDLFileType* SDLFileType_AUDIO_AAC = nil;
+SDLFileType* SDLFileType_BINARY = nil;
+SDLFileType* SDLFileType_JSON = nil;
+
+NSMutableArray* SDLFileType_values = nil;
+
+@implementation SDLFileType
+
++(SDLFileType*) valueOf:(NSString*) value {
+ for (SDLFileType* item in SDLFileType.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLFileType_values == nil) {
+ SDLFileType_values = [[NSMutableArray alloc] initWithObjects:
+ SDLFileType.GRAPHIC_BMP,
+ SDLFileType.GRAPHIC_JPEG,
+ SDLFileType.GRAPHIC_PNG,
+ SDLFileType.AUDIO_WAVE,
+ SDLFileType.AUDIO_MP3,
+ SDLFileType.AUDIO_AAC,
+ SDLFileType.BINARY,
+ SDLFileType.JSON,
+ nil];
+ }
+ return SDLFileType_values;
+}
+
++(SDLFileType*) GRAPHIC_BMP {
+ if (SDLFileType_GRAPHIC_BMP == nil) {
+ SDLFileType_GRAPHIC_BMP = [[SDLFileType alloc] initWithValue:@"GRAPHIC_BMP"];
+ }
+ return SDLFileType_GRAPHIC_BMP;
+}
+
++(SDLFileType*) GRAPHIC_JPEG {
+ if (SDLFileType_GRAPHIC_JPEG == nil) {
+ SDLFileType_GRAPHIC_JPEG = [[SDLFileType alloc] initWithValue:@"GRAPHIC_JPEG"];
+ }
+ return SDLFileType_GRAPHIC_JPEG;
+}
+
++(SDLFileType*) GRAPHIC_PNG {
+ if (SDLFileType_GRAPHIC_PNG == nil) {
+ SDLFileType_GRAPHIC_PNG = [[SDLFileType alloc] initWithValue:@"GRAPHIC_PNG"];
+ }
+ return SDLFileType_GRAPHIC_PNG;
+}
+
++(SDLFileType*) AUDIO_WAVE {
+ if (SDLFileType_AUDIO_WAVE == nil) {
+ SDLFileType_AUDIO_WAVE = [[SDLFileType alloc] initWithValue:@"AUDIO_WAVE"];
+ }
+ return SDLFileType_AUDIO_WAVE;
+}
+
++(SDLFileType*) AUDIO_MP3 {
+ if (SDLFileType_AUDIO_MP3 == nil) {
+ SDLFileType_AUDIO_MP3 = [[SDLFileType alloc] initWithValue:@"AUDIO_MP3"];
+ }
+ return SDLFileType_AUDIO_MP3;
+}
+
++(SDLFileType*) AUDIO_AAC {
+ if (SDLFileType_AUDIO_AAC == nil) {
+ SDLFileType_AUDIO_AAC = [[SDLFileType alloc] initWithValue:@"AUDIO_AAC"];
+ }
+ return SDLFileType_AUDIO_AAC;
+}
+
++(SDLFileType*) BINARY {
+ if (SDLFileType_BINARY == nil) {
+ SDLFileType_BINARY = [[SDLFileType alloc] initWithValue:@"BINARY"];
+ }
+ return SDLFileType_BINARY;
+}
+
++(SDLFileType*) JSON {
+ if (SDLFileType_JSON == nil) {
+ SDLFileType_JSON = [[SDLFileType alloc] initWithValue:@"JSON"];
+ }
+ return SDLFileType_JSON;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLFuelCutoffStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLFuelCutoffStatus.h
new file mode 100644
index 000000000..c53df7c02
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLFuelCutoffStatus.h
@@ -0,0 +1,17 @@
+// SDLFuelCutoffStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLFuelCutoffStatus : SDLEnum {}
+
++(SDLFuelCutoffStatus*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLFuelCutoffStatus*) TERMINATE_FUEL;
++(SDLFuelCutoffStatus*) NORMAL_OPERATION;
++(SDLFuelCutoffStatus*) FAULT;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLFuelCutoffStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLFuelCutoffStatus.m
new file mode 100644
index 000000000..b5c892778
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLFuelCutoffStatus.m
@@ -0,0 +1,56 @@
+// SDLFuelCutoffStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLFuelCutoffStatus.h"
+
+SDLFuelCutoffStatus* SDLFuelCutoffStatus_TERMINATE_FUEL = nil;
+SDLFuelCutoffStatus* SDLFuelCutoffStatus_NORMAL_OPERATION = nil;
+SDLFuelCutoffStatus* SDLFuelCutoffStatus_FAULT = nil;
+
+NSMutableArray* SDLFuelCutoffStatus_values = nil;
+
+@implementation SDLFuelCutoffStatus
+
++(SDLFuelCutoffStatus*) valueOf:(NSString*) value {
+ for (SDLFuelCutoffStatus* item in SDLFuelCutoffStatus.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLFuelCutoffStatus_values == nil) {
+ SDLFuelCutoffStatus_values = [[NSMutableArray alloc] initWithObjects:
+ SDLFuelCutoffStatus.TERMINATE_FUEL,
+ SDLFuelCutoffStatus.NORMAL_OPERATION,
+ SDLFuelCutoffStatus.FAULT,
+ nil];
+ }
+ return SDLFuelCutoffStatus_values;
+}
+
++(SDLFuelCutoffStatus*) TERMINATE_FUEL {
+ if (SDLFuelCutoffStatus_TERMINATE_FUEL == nil) {
+ SDLFuelCutoffStatus_TERMINATE_FUEL = [[SDLFuelCutoffStatus alloc] initWithValue:@"TERMINATE_FUEL"];
+ }
+ return SDLFuelCutoffStatus_TERMINATE_FUEL;
+}
+
++(SDLFuelCutoffStatus*) NORMAL_OPERATION {
+ if (SDLFuelCutoffStatus_NORMAL_OPERATION == nil) {
+ SDLFuelCutoffStatus_NORMAL_OPERATION = [[SDLFuelCutoffStatus alloc] initWithValue:@"NORMAL_OPERATION"];
+ }
+ return SDLFuelCutoffStatus_NORMAL_OPERATION;
+}
+
++(SDLFuelCutoffStatus*) FAULT {
+ if (SDLFuelCutoffStatus_FAULT == nil) {
+ SDLFuelCutoffStatus_FAULT = [[SDLFuelCutoffStatus alloc] initWithValue:@"FAULT"];
+ }
+ return SDLFuelCutoffStatus_FAULT;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLFunctionID.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLFunctionID.h
new file mode 100644
index 000000000..4df80e6f3
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLFunctionID.h
@@ -0,0 +1,16 @@
+// SDLFunctionID.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+@import Foundation;
+
+
+@interface SDLFunctionID : NSObject {
+
+ NSDictionary* functionIDs;
+}
+
+-(NSString*) getFunctionName:(int) functionID;
+-(NSNumber*) getFunctionID:(NSString*) functionName;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLFunctionID.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLFunctionID.m
new file mode 100644
index 000000000..b18ea31d4
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLFunctionID.m
@@ -0,0 +1,94 @@
+// SDLFunctionID.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLFunctionID.h"
+
+#import "SDLNames.h"
+
+@implementation SDLFunctionID
+
+-(id) init {
+ if (self = [super init]) {
+
+ functionIDs = [NSDictionary dictionaryWithObjectsAndKeys:
+ NAMES_reserved, @"0",
+ NAMES_RegisterAppInterface, @"1",
+ NAMES_UnregisterAppInterface, @"2",
+ NAMES_SetGlobalProperties, @"3",
+ NAMES_ResetGlobalProperties, @"4",
+ NAMES_AddCommand, @"5",
+ NAMES_DeleteCommand, @"6",
+ NAMES_AddSubMenu, @"7",
+ NAMES_DeleteSubMenu, @"8",
+ NAMES_CreateInteractionChoiceSet, @"9",
+ NAMES_PerformInteraction, @"10",
+ NAMES_DeleteInteractionChoiceSet, @"11",
+ NAMES_Alert, @"12",
+ NAMES_Show, @"13",
+ NAMES_Speak, @"14",
+ NAMES_SetMediaClockTimer, @"15",
+ NAMES_PerformAudioPassThru, @"16",
+ NAMES_EndAudioPassThru, @"17",
+ NAMES_SubscribeButton, @"18",
+ NAMES_UnsubscribeButton, @"19",
+ NAMES_SubscribeVehicleData, @"20",
+ NAMES_UnsubscribeVehicleData, @"21",
+ NAMES_GetVehicleData, @"22",
+ NAMES_ReadDID, @"23",
+ NAMES_GetDTCs, @"24",
+ NAMES_ScrollableMessage, @"25",
+ NAMES_Slider, @"26",
+ NAMES_ShowConstantTBT, @"27",
+ NAMES_AlertManeuver, @"28",
+ NAMES_UpdateTurnList, @"29",
+ NAMES_ChangeRegistration, @"30",
+ NAMES_GenericResponse, @"31",
+ NAMES_PutFile, @"32",
+ NAMES_DeleteFile, @"33",
+ NAMES_ListFiles, @"34",
+ NAMES_SetAppIcon, @"35",
+ NAMES_SetDisplayLayout, @"36",
+ NAMES_DiagnosticMessage, @"37",
+ NAMES_SystemRequest, @"38",
+
+ NAMES_OnHMIStatus, @"32768",
+ NAMES_OnAppInterfaceUnregistered, @"32769",
+ NAMES_OnButtonEvent, @"32770",
+ NAMES_OnButtonPress, @"32771",
+ NAMES_OnVehicleData, @"32772",
+ NAMES_OnCommand, @"32773",
+ NAMES_OnTBTClientState, @"32774",
+ NAMES_OnDriverDistraction, @"32775",
+ NAMES_OnPermissionsChange, @"32776",
+ NAMES_OnAudioPassThru, @"32777",
+ NAMES_OnLanguageChange, @"32778",
+ NAMES_OnKeyboardInput, @"32779",
+ NAMES_OnTouchEvent, @"32780",
+ NAMES_OnSystemRequest, @"32781",
+ NAMES_OnHashChange, @"32782",
+
+ NAMES_EncodedSyncPData, @"65536",
+ NAMES_SyncPData, @"65537",
+
+ NAMES_OnEncodedSyncPData, @"98304",
+ NAMES_OnSyncPData, @"98405",
+ nil];
+
+ }
+ return self;
+}
+
+-(NSString *)getFunctionName:(int) functionID{
+
+ return [functionIDs objectForKey:[NSString stringWithFormat:@"%d", functionID]];
+}
+
+
+-(NSNumber*) getFunctionID:(NSString*) functionName{
+
+ return [NSNumber numberWithInt:[[[functionIDs allKeysForObject:functionName] objectAtIndex:0] intValue]];
+}
+
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLGPSData.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGPSData.h
new file mode 100644
index 000000000..0d8fd54ff
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGPSData.h
@@ -0,0 +1,35 @@
+// SDLGPSData.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLCompassDirection.h"
+#import "SDLDimension.h"
+
+@interface SDLGPSData : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* longitudeDegrees;
+@property(strong) NSNumber* latitudeDegrees;
+@property(strong) NSNumber* utcYear;
+@property(strong) NSNumber* utcMonth;
+@property(strong) NSNumber* utcDay;
+@property(strong) NSNumber* utcHours;
+@property(strong) NSNumber* utcMinutes;
+@property(strong) NSNumber* utcSeconds;
+@property(strong) SDLCompassDirection* compassDirection;
+@property(strong) NSNumber* pdop;
+@property(strong) NSNumber* hdop;
+@property(strong) NSNumber* vdop;
+@property(strong) NSNumber* actual;
+@property(strong) NSNumber* satellites;
+@property(strong) SDLDimension* dimension;
+@property(strong) NSNumber* altitude;
+@property(strong) NSNumber* heading;
+@property(strong) NSNumber* speed;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLGPSData.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGPSData.m
new file mode 100644
index 000000000..0514d3a33
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGPSData.m
@@ -0,0 +1,247 @@
+// SDLGPSData.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLGPSData.h"
+
+#import "SDLNames.h"
+
+@implementation SDLGPSData
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setLongitudeDegrees:(NSNumber*) longitudeDegrees {
+ if (longitudeDegrees != nil) {
+ [store setObject:longitudeDegrees forKey:NAMES_longitudeDegrees];
+ } else {
+ [store removeObjectForKey:NAMES_longitudeDegrees];
+ }
+}
+
+-(NSNumber*) longitudeDegrees {
+ return [store objectForKey:NAMES_longitudeDegrees];
+}
+
+-(void) setLatitudeDegrees:(NSNumber*) latitudeDegrees {
+ if (latitudeDegrees != nil) {
+ [store setObject:latitudeDegrees forKey:NAMES_latitudeDegrees];
+ } else {
+ [store removeObjectForKey:NAMES_latitudeDegrees];
+ }
+}
+
+-(NSNumber*) latitudeDegrees {
+ return [store objectForKey:NAMES_latitudeDegrees];
+}
+
+-(void) setUtcYear:(NSNumber*) utcYear {
+ if (utcYear != nil) {
+ [store setObject:utcYear forKey:NAMES_utcYear];
+ } else {
+ [store removeObjectForKey:NAMES_utcYear];
+ }
+}
+
+-(NSNumber*) utcYear {
+ return [store objectForKey:NAMES_utcYear];
+}
+
+-(void) setUtcMonth:(NSNumber*) utcMonth {
+ if (utcMonth != nil) {
+ [store setObject:utcMonth forKey:NAMES_utcMonth];
+ } else {
+ [store removeObjectForKey:NAMES_utcMonth];
+ }
+}
+
+-(NSNumber*) utcMonth {
+ return [store objectForKey:NAMES_utcMonth];
+}
+
+-(void) setUtcDay:(NSNumber*) utcDay {
+ if (utcDay != nil) {
+ [store setObject:utcDay forKey:NAMES_utcDay];
+ } else {
+ [store removeObjectForKey:NAMES_utcDay];
+ }
+}
+
+-(NSNumber*) utcDay {
+ return [store objectForKey:NAMES_utcDay];
+}
+
+-(void) setUtcHours:(NSNumber*) utcHours {
+ if (utcHours != nil) {
+ [store setObject:utcHours forKey:NAMES_utcHours];
+ } else {
+ [store removeObjectForKey:NAMES_utcHours];
+ }
+}
+
+-(NSNumber*) utcHours {
+ return [store objectForKey:NAMES_utcHours];
+}
+
+-(void) setUtcMinutes:(NSNumber*) utcMinutes {
+ if (utcMinutes != nil) {
+ [store setObject:utcMinutes forKey:NAMES_utcMinutes];
+ } else {
+ [store removeObjectForKey:NAMES_utcMinutes];
+ }
+}
+
+-(NSNumber*) utcMinutes {
+ return [store objectForKey:NAMES_utcMinutes];
+}
+
+-(void) setUtcSeconds:(NSNumber*) utcSeconds {
+ if (utcSeconds != nil) {
+ [store setObject:utcSeconds forKey:NAMES_utcSeconds];
+ } else {
+ [store removeObjectForKey:NAMES_utcSeconds];
+ }
+}
+
+-(NSNumber*) utcSeconds {
+ return [store objectForKey:NAMES_utcSeconds];
+}
+
+-(void) setCompassDirection:(SDLCompassDirection*) compassDirection {
+ if (compassDirection != nil) {
+ [store setObject:compassDirection forKey:NAMES_compassDirection];
+ } else {
+ [store removeObjectForKey:NAMES_compassDirection];
+ }
+}
+
+-(SDLCompassDirection*) compassDirection {
+ NSObject* obj = [store objectForKey:NAMES_compassDirection];
+ if ([obj isKindOfClass:SDLCompassDirection.class]) {
+ return (SDLCompassDirection*)obj;
+ } else {
+ return [SDLCompassDirection valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setPdop:(NSNumber*) pdop {
+ if (pdop != nil) {
+ [store setObject:pdop forKey:NAMES_pdop];
+ } else {
+ [store removeObjectForKey:NAMES_pdop];
+ }
+}
+
+-(NSNumber*) pdop {
+ return [store objectForKey:NAMES_pdop];
+}
+
+-(void) setHdop:(NSNumber*) hdop {
+ if (hdop != nil) {
+ [store setObject:hdop forKey:NAMES_hdop];
+ } else {
+ [store removeObjectForKey:NAMES_hdop];
+ }
+}
+
+-(NSNumber*) hdop {
+ return [store objectForKey:NAMES_hdop];
+}
+
+-(void) setVdop:(NSNumber*) vdop {
+ if (vdop != nil) {
+ [store setObject:vdop forKey:NAMES_vdop];
+ } else {
+ [store removeObjectForKey:NAMES_vdop];
+ }
+}
+
+-(NSNumber*) vdop {
+ return [store objectForKey:NAMES_vdop];
+}
+
+-(void) setActual:(NSNumber*) actual {
+ if (actual != nil) {
+ [store setObject:actual forKey:NAMES_actual];
+ } else {
+ [store removeObjectForKey:NAMES_actual];
+ }
+}
+
+-(NSNumber*) actual {
+ return [store objectForKey:NAMES_actual];
+}
+
+-(void) setSatellites:(NSNumber*) satellites {
+ if (satellites != nil) {
+ [store setObject:satellites forKey:NAMES_satellites];
+ } else {
+ [store removeObjectForKey:NAMES_satellites];
+ }
+}
+
+-(NSNumber*) satellites {
+ return [store objectForKey:NAMES_satellites];
+}
+
+-(void) setDimension:(SDLDimension*) dimension {
+ if (dimension != nil) {
+ [store setObject:dimension forKey:NAMES_dimension];
+ } else {
+ [store removeObjectForKey:NAMES_dimension];
+ }
+}
+
+-(SDLDimension*) dimension {
+ NSObject* obj = [store objectForKey:NAMES_dimension];
+ if ([obj isKindOfClass:SDLDimension.class]) {
+ return (SDLDimension*)obj;
+ } else {
+ return [SDLDimension valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setAltitude:(NSNumber*) altitude {
+ if (altitude != nil) {
+ [store setObject:altitude forKey:NAMES_altitude];
+ } else {
+ [store removeObjectForKey:NAMES_altitude];
+ }
+}
+
+-(NSNumber*) altitude {
+ return [store objectForKey:NAMES_altitude];
+}
+
+-(void) setHeading:(NSNumber*) heading {
+ if (heading != nil) {
+ [store setObject:heading forKey:NAMES_heading];
+ } else {
+ [store removeObjectForKey:NAMES_heading];
+ }
+}
+
+-(NSNumber*) heading {
+ return [store objectForKey:NAMES_heading];
+}
+
+-(void) setSpeed:(NSNumber*) speed {
+ if (speed != nil) {
+ [store setObject:speed forKey:NAMES_speed];
+ } else {
+ [store removeObjectForKey:NAMES_speed];
+ }
+}
+
+-(NSNumber*) speed {
+ return [store objectForKey:NAMES_speed];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLGenericResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGenericResponse.h
new file mode 100644
index 000000000..6a21cdfc8
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGenericResponse.h
@@ -0,0 +1,13 @@
+// SDLGenericResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLGenericResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLGenericResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGenericResponse.m
new file mode 100644
index 000000000..81cf7e8da
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGenericResponse.m
@@ -0,0 +1,21 @@
+// SDLGenericResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLGenericResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLGenericResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_GenericResponse]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLGetDTCs.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGetDTCs.h
new file mode 100644
index 000000000..e9a85a695
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGetDTCs.h
@@ -0,0 +1,16 @@
+// SDLGetDTCs.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLGetDTCs : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* ecuName;
+@property(strong) NSNumber* dtcMask;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLGetDTCs.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGetDTCs.m
new file mode 100644
index 000000000..ab051ea87
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGetDTCs.m
@@ -0,0 +1,45 @@
+// SDLGetDTCs.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLGetDTCs.h"
+
+#import "SDLNames.h"
+
+@implementation SDLGetDTCs
+
+-(id) init {
+ if (self = [super initWithName:NAMES_GetDTCs]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setEcuName:(NSNumber*) ecuName {
+ if (ecuName != nil) {
+ [parameters setObject:ecuName forKey:NAMES_ecuName];
+ } else {
+ [parameters removeObjectForKey:NAMES_ecuName];
+ }
+}
+
+-(NSNumber*) ecuName {
+ return [parameters objectForKey:NAMES_ecuName];
+}
+
+-(void) setDtcMask:(NSNumber*) dtcMask {
+ if (dtcMask != nil) {
+ [parameters setObject:dtcMask forKey:NAMES_dtcMask];
+ } else {
+ [parameters removeObjectForKey:NAMES_dtcMask];
+ }
+}
+
+-(NSNumber*) dtcMask {
+ return [parameters objectForKey:NAMES_dtcMask];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLGetDTCsResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGetDTCsResponse.h
new file mode 100644
index 000000000..0a29fed45
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGetDTCsResponse.h
@@ -0,0 +1,16 @@
+// SDLGetDTCsResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLGetDTCsResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* ecuHeader;
+@property(strong) NSMutableArray* dtc;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLGetDTCsResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGetDTCsResponse.m
new file mode 100644
index 000000000..4f785ee41
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGetDTCsResponse.m
@@ -0,0 +1,45 @@
+// SDLGetDTCsResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLGetDTCsResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLGetDTCsResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_GetDTCs]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setEcuHeader:(NSNumber*) ecuHeader {
+ if (ecuHeader != nil) {
+ [parameters setObject:ecuHeader forKey:NAMES_ecuHeader];
+ } else {
+ [parameters removeObjectForKey:NAMES_ecuHeader];
+ }
+}
+
+-(NSNumber*) ecuHeader {
+ return [parameters objectForKey:NAMES_ecuHeader];
+}
+
+-(void) setDtc:(NSMutableArray*) dtc {
+ if (dtc != nil) {
+ [parameters setObject:dtc forKey:NAMES_dtc];
+ } else {
+ [parameters removeObjectForKey:NAMES_dtc];
+ }
+}
+
+-(NSMutableArray*) dtc {
+ return [parameters objectForKey:NAMES_dtc];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLGetVehicleData.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGetVehicleData.h
new file mode 100644
index 000000000..b0ef2fd40
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGetVehicleData.h
@@ -0,0 +1,39 @@
+// SDLGetVehicleData.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLGetVehicleData : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* gps;
+@property(strong) NSNumber* speed;
+@property(strong) NSNumber* rpm;
+@property(strong) NSNumber* fuelLevel;
+@property(strong) NSNumber* fuelLevel_State;
+@property(strong) NSNumber* instantFuelConsumption;
+@property(strong) NSNumber* externalTemperature;
+@property(strong) NSNumber* vin;
+@property(strong) NSNumber* prndl;
+@property(strong) NSNumber* tirePressure;
+@property(strong) NSNumber* odometer;
+@property(strong) NSNumber* beltStatus;
+@property(strong) NSNumber* bodyInformation;
+@property(strong) NSNumber* deviceStatus;
+@property(strong) NSNumber* driverBraking;
+@property(strong) NSNumber* wiperStatus;
+@property(strong) NSNumber* headLampStatus;
+@property(strong) NSNumber* engineTorque;
+@property(strong) NSNumber* accPedalPosition;
+@property(strong) NSNumber* steeringWheelAngle;
+@property(strong) NSNumber* eCallInfo;
+@property(strong) NSNumber* airbagStatus;
+@property(strong) NSNumber* emergencyEvent;
+@property(strong) NSNumber* clusterModeStatus;
+@property(strong) NSNumber* myKey;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLGetVehicleData.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGetVehicleData.m
new file mode 100644
index 000000000..8a5c030f1
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGetVehicleData.m
@@ -0,0 +1,321 @@
+// SDLGetVehicleData.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLGetVehicleData.h"
+
+#import "SDLNames.h"
+
+@implementation SDLGetVehicleData
+
+-(id) init {
+ if (self = [super initWithName:NAMES_GetVehicleData]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setGps:(NSNumber*) gps {
+ if (gps != nil) {
+ [parameters setObject:gps forKey:NAMES_gps];
+ } else {
+ [parameters removeObjectForKey:NAMES_gps];
+ }
+}
+
+-(NSNumber*) gps {
+ return [parameters objectForKey:NAMES_gps];
+}
+
+-(void) setSpeed:(NSNumber*) speed {
+ if (speed != nil) {
+ [parameters setObject:speed forKey:NAMES_speed];
+ } else {
+ [parameters removeObjectForKey:NAMES_speed];
+ }
+}
+
+-(NSNumber*) speed {
+ return [parameters objectForKey:NAMES_speed];
+}
+
+-(void) setRpm:(NSNumber*) rpm {
+ if (rpm != nil) {
+ [parameters setObject:rpm forKey:NAMES_rpm];
+ } else {
+ [parameters removeObjectForKey:NAMES_rpm];
+ }
+}
+
+-(NSNumber*) rpm {
+ return [parameters objectForKey:NAMES_rpm];
+}
+
+-(void) setFuelLevel:(NSNumber*) fuelLevel {
+ if (fuelLevel != nil) {
+ [parameters setObject:fuelLevel forKey:NAMES_fuelLevel];
+ } else {
+ [parameters removeObjectForKey:NAMES_fuelLevel];
+ }
+}
+
+-(NSNumber*) fuelLevel {
+ return [parameters objectForKey:NAMES_fuelLevel];
+}
+
+-(void) setFuelLevel_State:(NSNumber*) fuelLevel_State {
+ if (fuelLevel_State != nil) {
+ [parameters setObject:fuelLevel_State forKey:NAMES_fuelLevel_State];
+ } else {
+ [parameters removeObjectForKey:NAMES_fuelLevel_State];
+ }
+}
+
+-(NSNumber*) fuelLevel_State {
+ return [parameters objectForKey:NAMES_fuelLevel_State];
+}
+
+-(void) setInstantFuelConsumption:(NSNumber*) instantFuelConsumption {
+ if (instantFuelConsumption != nil) {
+ [parameters setObject:instantFuelConsumption forKey:NAMES_instantFuelConsumption];
+ } else {
+ [parameters removeObjectForKey:NAMES_instantFuelConsumption];
+ }
+}
+
+-(NSNumber*) instantFuelConsumption {
+ return [parameters objectForKey:NAMES_instantFuelConsumption];
+}
+
+-(void) setExternalTemperature:(NSNumber*) externalTemperature {
+ if (externalTemperature != nil) {
+ [parameters setObject:externalTemperature forKey:NAMES_externalTemperature];
+ } else {
+ [parameters removeObjectForKey:NAMES_externalTemperature];
+ }
+}
+
+-(NSNumber*) externalTemperature {
+ return [parameters objectForKey:NAMES_externalTemperature];
+}
+
+-(void) setVin:(NSNumber*) vin {
+ if (vin != nil) {
+ [parameters setObject:vin forKey:NAMES_vin];
+ } else {
+ [parameters removeObjectForKey:NAMES_vin];
+ }
+}
+
+-(NSNumber*) vin {
+ return [parameters objectForKey:NAMES_vin];
+}
+
+-(void) setPrndl:(NSNumber*) prndl {
+ if (prndl != nil) {
+ [parameters setObject:prndl forKey:NAMES_prndl];
+ } else {
+ [parameters removeObjectForKey:NAMES_prndl];
+ }
+}
+
+-(NSNumber*) prndl {
+ return [parameters objectForKey:NAMES_prndl];
+}
+
+-(void) setTirePressure:(NSNumber*) tirePressure {
+ if (tirePressure != nil) {
+ [parameters setObject:tirePressure forKey:NAMES_tirePressure];
+ } else {
+ [parameters removeObjectForKey:NAMES_tirePressure];
+ }
+}
+
+-(NSNumber*) tirePressure {
+ return [parameters objectForKey:NAMES_tirePressure];
+}
+
+-(void) setOdometer:(NSNumber*) odometer {
+ if (odometer != nil) {
+ [parameters setObject:odometer forKey:NAMES_odometer];
+ } else {
+ [parameters removeObjectForKey:NAMES_odometer];
+ }
+}
+
+-(NSNumber*) odometer {
+ return [parameters objectForKey:NAMES_odometer];
+}
+
+-(void) setBeltStatus:(NSNumber*) beltStatus {
+ if (beltStatus != nil) {
+ [parameters setObject:beltStatus forKey:NAMES_beltStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_beltStatus];
+ }
+}
+
+-(NSNumber*) beltStatus {
+ return [parameters objectForKey:NAMES_beltStatus];
+}
+
+-(void) setBodyInformation:(NSNumber*) bodyInformation {
+ if (bodyInformation != nil) {
+ [parameters setObject:bodyInformation forKey:NAMES_bodyInformation];
+ } else {
+ [parameters removeObjectForKey:NAMES_bodyInformation];
+ }
+}
+
+-(NSNumber*) bodyInformation {
+ return [parameters objectForKey:NAMES_bodyInformation];
+}
+
+-(void) setDeviceStatus:(NSNumber*) deviceStatus {
+ if (deviceStatus != nil) {
+ [parameters setObject:deviceStatus forKey:NAMES_deviceStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_deviceStatus];
+ }
+}
+
+-(NSNumber*) deviceStatus {
+ return [parameters objectForKey:NAMES_deviceStatus];
+}
+
+-(void) setDriverBraking:(NSNumber*) driverBraking {
+ if (driverBraking != nil) {
+ [parameters setObject:driverBraking forKey:NAMES_driverBraking];
+ } else {
+ [parameters removeObjectForKey:NAMES_driverBraking];
+ }
+}
+
+-(NSNumber*) driverBraking {
+ return [parameters objectForKey:NAMES_driverBraking];
+}
+
+-(void) setWiperStatus:(NSNumber*) wiperStatus {
+ if (wiperStatus != nil) {
+ [parameters setObject:wiperStatus forKey:NAMES_wiperStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_wiperStatus];
+ }
+}
+
+-(NSNumber*) wiperStatus {
+ return [parameters objectForKey:NAMES_wiperStatus];
+}
+
+-(void) setHeadLampStatus:(NSNumber*) headLampStatus {
+ if (headLampStatus != nil) {
+ [parameters setObject:headLampStatus forKey:NAMES_headLampStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_headLampStatus];
+ }
+}
+
+-(NSNumber*) headLampStatus {
+ return [parameters objectForKey:NAMES_headLampStatus];
+}
+
+-(void) setEngineTorque:(NSNumber*) engineTorque {
+ if (engineTorque != nil) {
+ [parameters setObject:engineTorque forKey:NAMES_engineTorque];
+ } else {
+ [parameters removeObjectForKey:NAMES_engineTorque];
+ }
+}
+
+-(NSNumber*) engineTorque {
+ return [parameters objectForKey:NAMES_engineTorque];
+}
+
+-(void) setAccPedalPosition:(NSNumber*) accPedalPosition {
+ if (accPedalPosition != nil) {
+ [parameters setObject:accPedalPosition forKey:NAMES_accPedalPosition];
+ } else {
+ [parameters removeObjectForKey:NAMES_accPedalPosition];
+ }
+}
+
+-(NSNumber*) accPedalPosition {
+ return [parameters objectForKey:NAMES_accPedalPosition];
+}
+
+-(void) setSteeringWheelAngle:(NSNumber*) steeringWheelAngle {
+ if (steeringWheelAngle != nil) {
+ [parameters setObject:steeringWheelAngle forKey:NAMES_steeringWheelAngle];
+ } else {
+ [parameters removeObjectForKey:NAMES_steeringWheelAngle];
+ }
+}
+
+-(NSNumber*) steeringWheelAngle {
+ return [parameters objectForKey:NAMES_steeringWheelAngle];
+}
+
+-(void) setECallInfo:(NSNumber*) eCallInfo {
+ if (eCallInfo != nil) {
+ [parameters setObject:eCallInfo forKey:NAMES_eCallInfo];
+ } else {
+ [parameters removeObjectForKey:NAMES_eCallInfo];
+ }
+}
+
+-(NSNumber*) eCallInfo {
+ return [parameters objectForKey:NAMES_eCallInfo];
+}
+
+-(void) setAirbagStatus:(NSNumber*) airbagStatus {
+ if (airbagStatus != nil) {
+ [parameters setObject:airbagStatus forKey:NAMES_airbagStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_airbagStatus];
+ }
+}
+
+-(NSNumber*) airbagStatus {
+ return [parameters objectForKey:NAMES_airbagStatus];
+}
+
+-(void) setEmergencyEvent:(NSNumber*) emergencyEvent {
+ if (emergencyEvent != nil) {
+ [parameters setObject:emergencyEvent forKey:NAMES_emergencyEvent];
+ } else {
+ [parameters removeObjectForKey:NAMES_emergencyEvent];
+ }
+}
+
+-(NSNumber*) emergencyEvent {
+ return [parameters objectForKey:NAMES_emergencyEvent];
+}
+
+-(void) setClusterModeStatus:(NSNumber*) clusterModeStatus {
+ if (clusterModeStatus != nil) {
+ [parameters setObject:clusterModeStatus forKey:NAMES_clusterModeStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_clusterModeStatus];
+ }
+}
+
+-(NSNumber*) clusterModeStatus {
+ return [parameters objectForKey:NAMES_clusterModeStatus];
+}
+
+-(void) setMyKey:(NSNumber*) myKey {
+ if (myKey != nil) {
+ [parameters setObject:myKey forKey:NAMES_myKey];
+ } else {
+ [parameters removeObjectForKey:NAMES_myKey];
+ }
+}
+
+-(NSNumber*) myKey {
+ return [parameters objectForKey:NAMES_myKey];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLGetVehicleDataResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGetVehicleDataResponse.h
new file mode 100644
index 000000000..10e5affa4
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGetVehicleDataResponse.h
@@ -0,0 +1,55 @@
+// SDLGetVehicleDataResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+#import "SDLGPSData.h"
+#import "SDLComponentVolumeStatus.h"
+#import "SDLPRNDL.h"
+#import "SDLTireStatus.h"
+#import "SDLBeltStatus.h"
+#import "SDLBodyInformation.h"
+#import "SDLDeviceStatus.h"
+#import "SDLVehicleDataEventStatus.h"
+#import "SDLWiperStatus.h"
+#import "SDLHeadLampStatus.h"
+#import "SDLECallInfo.h"
+#import "SDLAirbagStatus.h"
+#import "SDLEmergencyEvent.h"
+#import "SDLClusterModeStatus.h"
+#import "SDLMyKey.h"
+
+@interface SDLGetVehicleDataResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLGPSData* gps;
+@property(strong) NSNumber* speed;
+@property(strong) NSNumber* rpm;
+@property(strong) NSNumber* fuelLevel;
+@property(strong) SDLComponentVolumeStatus* fuelLevel_State;
+@property(strong) NSNumber* instantFuelConsumption;
+@property(strong) NSNumber* externalTemperature;
+@property(strong) NSString* vin;
+@property(strong) SDLPRNDL* prndl;
+@property(strong) SDLTireStatus* tirePressure;
+@property(strong) NSNumber* odometer;
+@property(strong) SDLBeltStatus* beltStatus;
+@property(strong) SDLBodyInformation* bodyInformation;
+@property(strong) SDLDeviceStatus* deviceStatus;
+@property(strong) SDLVehicleDataEventStatus* driverBraking;
+@property(strong) SDLWiperStatus* wiperStatus;
+@property(strong) SDLHeadLampStatus* headLampStatus;
+@property(strong) NSNumber* engineTorque;
+@property(strong) NSNumber* accPedalPosition;
+@property(strong) NSNumber* steeringWheelAngle;
+@property(strong) SDLECallInfo* eCallInfo;
+@property(strong) SDLAirbagStatus* airbagStatus;
+@property(strong) SDLEmergencyEvent* emergencyEvent;
+@property(strong) SDLClusterModeStatus* clusterModeStatus;
+@property(strong) SDLMyKey* myKey;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLGetVehicleDataResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGetVehicleDataResponse.m
new file mode 100644
index 000000000..89868971e
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGetVehicleDataResponse.m
@@ -0,0 +1,396 @@
+// SDLGetVehicleDataResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLGetVehicleDataResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLGetVehicleDataResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_GetVehicleData]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setGps:(SDLGPSData*) gps {
+ if (gps != nil) {
+ [parameters setObject:gps forKey:NAMES_gps];
+ } else {
+ [parameters removeObjectForKey:NAMES_gps];
+ }
+}
+
+-(SDLGPSData*) gps {
+ NSObject* obj = [parameters objectForKey:NAMES_gps];
+ if ([obj isKindOfClass:SDLGPSData.class]) {
+ return (SDLGPSData*)obj;
+ } else {
+ return [[SDLGPSData alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setSpeed:(NSNumber*) speed {
+ if (speed != nil) {
+ [parameters setObject:speed forKey:NAMES_speed];
+ } else {
+ [parameters removeObjectForKey:NAMES_speed];
+ }
+}
+
+-(NSNumber*) speed {
+ return [parameters objectForKey:NAMES_speed];
+}
+
+-(void) setRpm:(NSNumber*) rpm {
+ if (rpm != nil) {
+ [parameters setObject:rpm forKey:NAMES_rpm];
+ } else {
+ [parameters removeObjectForKey:NAMES_rpm];
+ }
+}
+
+-(NSNumber*) rpm {
+ return [parameters objectForKey:NAMES_rpm];
+}
+
+-(void) setFuelLevel:(NSNumber*) fuelLevel {
+ if (fuelLevel != nil) {
+ [parameters setObject:fuelLevel forKey:NAMES_fuelLevel];
+ } else {
+ [parameters removeObjectForKey:NAMES_fuelLevel];
+ }
+}
+
+-(NSNumber*) fuelLevel {
+ return [parameters objectForKey:NAMES_fuelLevel];
+}
+
+-(void) setFuelLevel_State:(SDLComponentVolumeStatus*) fuelLevel_State {
+ if (fuelLevel_State != nil) {
+ [parameters setObject:fuelLevel_State forKey:NAMES_fuelLevel_State];
+ } else {
+ [parameters removeObjectForKey:NAMES_fuelLevel_State];
+ }
+}
+
+-(SDLComponentVolumeStatus*) fuelLevel_State {
+ NSObject* obj = [parameters objectForKey:NAMES_fuelLevel_State];
+ if ([obj isKindOfClass:SDLComponentVolumeStatus.class]) {
+ return (SDLComponentVolumeStatus*)obj;
+ } else {
+ return [SDLComponentVolumeStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setInstantFuelConsumption:(NSNumber*) instantFuelConsumption {
+ if (instantFuelConsumption != nil) {
+ [parameters setObject:instantFuelConsumption forKey:NAMES_instantFuelConsumption];
+ } else {
+ [parameters removeObjectForKey:NAMES_instantFuelConsumption];
+ }
+}
+
+-(NSNumber*) instantFuelConsumption {
+ return [parameters objectForKey:NAMES_instantFuelConsumption];
+}
+
+-(void) setExternalTemperature:(NSNumber*) externalTemperature {
+ if (externalTemperature != nil) {
+ [parameters setObject:externalTemperature forKey:NAMES_externalTemperature];
+ } else {
+ [parameters removeObjectForKey:NAMES_externalTemperature];
+ }
+}
+
+-(NSNumber*) externalTemperature {
+ return [parameters objectForKey:NAMES_externalTemperature];
+}
+
+-(void) setVin:(NSString*) vin {
+ if (vin != nil) {
+ [parameters setObject:vin forKey:NAMES_vin];
+ } else {
+ [parameters removeObjectForKey:NAMES_vin];
+ }
+}
+
+-(NSString*) vin {
+ return [parameters objectForKey:NAMES_vin];
+}
+
+-(void) setPrndl:(SDLPRNDL*) prndl {
+ if (prndl != nil) {
+ [parameters setObject:prndl forKey:NAMES_prndl];
+ } else {
+ [parameters removeObjectForKey:NAMES_prndl];
+ }
+}
+
+-(SDLPRNDL*) prndl {
+ NSObject* obj = [parameters objectForKey:NAMES_prndl];
+ if ([obj isKindOfClass:SDLPRNDL.class]) {
+ return (SDLPRNDL*)obj;
+ } else {
+ return [SDLPRNDL valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setTirePressure:(SDLTireStatus*) tirePressure {
+ if (tirePressure != nil) {
+ [parameters setObject:tirePressure forKey:NAMES_tirePressure];
+ } else {
+ [parameters removeObjectForKey:NAMES_tirePressure];
+ }
+}
+
+-(SDLTireStatus*) tirePressure {
+ NSObject* obj = [parameters objectForKey:NAMES_tirePressure];
+ if ([obj isKindOfClass:SDLTireStatus.class]) {
+ return (SDLTireStatus*)obj;
+ } else {
+ return [[SDLTireStatus alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setOdometer:(NSNumber*) odometer {
+ if (odometer != nil) {
+ [parameters setObject:odometer forKey:NAMES_odometer];
+ } else {
+ [parameters removeObjectForKey:NAMES_odometer];
+ }
+}
+
+-(NSNumber*) odometer {
+ return [parameters objectForKey:NAMES_odometer];
+}
+
+-(void) setBeltStatus:(SDLBeltStatus*) beltStatus {
+ if (beltStatus != nil) {
+ [parameters setObject:beltStatus forKey:NAMES_beltStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_beltStatus];
+ }
+}
+
+-(SDLBeltStatus*) beltStatus {
+ NSObject* obj = [parameters objectForKey:NAMES_beltStatus];
+ if ([obj isKindOfClass:SDLBeltStatus.class]) {
+ return (SDLBeltStatus*)obj;
+ } else {
+ return [[SDLBeltStatus alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setBodyInformation:(SDLBodyInformation*) bodyInformation {
+ if (bodyInformation != nil) {
+ [parameters setObject:bodyInformation forKey:NAMES_bodyInformation];
+ } else {
+ [parameters removeObjectForKey:NAMES_bodyInformation];
+ }
+}
+
+-(SDLBodyInformation*) bodyInformation {
+ NSObject* obj = [parameters objectForKey:NAMES_bodyInformation];
+ if ([obj isKindOfClass:SDLBodyInformation.class]) {
+ return (SDLBodyInformation*)obj;
+ } else {
+ return [[SDLBodyInformation alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setDeviceStatus:(SDLDeviceStatus*) deviceStatus {
+ if (deviceStatus != nil) {
+ [parameters setObject:deviceStatus forKey:NAMES_deviceStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_deviceStatus];
+ }
+}
+
+-(SDLDeviceStatus*) deviceStatus {
+ NSObject* obj = [parameters objectForKey:NAMES_deviceStatus];
+ if ([obj isKindOfClass:SDLDeviceStatus.class]) {
+ return (SDLDeviceStatus*)obj;
+ } else {
+ return [[SDLDeviceStatus alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setDriverBraking:(SDLVehicleDataEventStatus*) driverBraking {
+ if (driverBraking != nil) {
+ [parameters setObject:driverBraking forKey:NAMES_driverBraking];
+ } else {
+ [parameters removeObjectForKey:NAMES_driverBraking];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) driverBraking {
+ NSObject* obj = [parameters objectForKey:NAMES_driverBraking];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setWiperStatus:(SDLWiperStatus*) wiperStatus {
+ if (wiperStatus != nil) {
+ [parameters setObject:wiperStatus forKey:NAMES_wiperStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_wiperStatus];
+ }
+}
+
+-(SDLWiperStatus*) wiperStatus {
+ NSObject* obj = [parameters objectForKey:NAMES_wiperStatus];
+ if ([obj isKindOfClass:SDLWiperStatus.class]) {
+ return (SDLWiperStatus*)obj;
+ } else {
+ return [SDLWiperStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setHeadLampStatus:(SDLHeadLampStatus*) headLampStatus {
+ if (headLampStatus != nil) {
+ [parameters setObject:headLampStatus forKey:NAMES_headLampStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_headLampStatus];
+ }
+}
+
+-(SDLHeadLampStatus*) headLampStatus {
+ NSObject* obj = [parameters objectForKey:NAMES_headLampStatus];
+ if ([obj isKindOfClass:SDLHeadLampStatus.class]) {
+ return (SDLHeadLampStatus*)obj;
+ } else {
+ return [[SDLHeadLampStatus alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setEngineTorque:(NSNumber*) engineTorque {
+ if (engineTorque != nil) {
+ [parameters setObject:engineTorque forKey:NAMES_engineTorque];
+ } else {
+ [parameters removeObjectForKey:NAMES_engineTorque];
+ }
+}
+
+-(NSNumber*) engineTorque {
+ return [parameters objectForKey:NAMES_engineTorque];
+}
+
+-(void) setAccPedalPosition:(NSNumber*) accPedalPosition {
+ if (accPedalPosition != nil) {
+ [parameters setObject:accPedalPosition forKey:NAMES_accPedalPosition];
+ } else {
+ [parameters removeObjectForKey:NAMES_accPedalPosition];
+ }
+}
+
+-(NSNumber*) accPedalPosition {
+ return [parameters objectForKey:NAMES_accPedalPosition];
+}
+
+-(void) setSteeringWheelAngle:(NSNumber*) steeringWheelAngle {
+ if (steeringWheelAngle != nil) {
+ [parameters setObject:steeringWheelAngle forKey:NAMES_steeringWheelAngle];
+ } else {
+ [parameters removeObjectForKey:NAMES_steeringWheelAngle];
+ }
+}
+
+-(NSNumber*) steeringWheelAngle {
+ return [parameters objectForKey:NAMES_steeringWheelAngle];
+}
+
+-(void) setECallInfo:(SDLECallInfo*) eCallInfo {
+ if (eCallInfo != nil) {
+ [parameters setObject:eCallInfo forKey:NAMES_eCallInfo];
+ } else {
+ [parameters removeObjectForKey:NAMES_eCallInfo];
+ }
+}
+
+-(SDLECallInfo*) eCallInfo {
+ NSObject* obj = [parameters objectForKey:NAMES_eCallInfo];
+ if ([obj isKindOfClass:SDLECallInfo.class]) {
+ return (SDLECallInfo*)obj;
+ } else {
+ return [[SDLECallInfo alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setAirbagStatus:(SDLAirbagStatus*) airbagStatus {
+ if (airbagStatus != nil) {
+ [parameters setObject:airbagStatus forKey:NAMES_airbagStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_airbagStatus];
+ }
+}
+
+-(SDLAirbagStatus*) airbagStatus {
+ NSObject* obj = [parameters objectForKey:NAMES_airbagStatus];
+ if ([obj isKindOfClass:SDLAirbagStatus.class]) {
+ return (SDLAirbagStatus*)obj;
+ } else {
+ return [[SDLAirbagStatus alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setEmergencyEvent:(SDLEmergencyEvent*) emergencyEvent {
+ if (emergencyEvent != nil) {
+ [parameters setObject:emergencyEvent forKey:NAMES_emergencyEvent];
+ } else {
+ [parameters removeObjectForKey:NAMES_emergencyEvent];
+ }
+}
+
+-(SDLEmergencyEvent*) emergencyEvent {
+ NSObject* obj = [parameters objectForKey:NAMES_emergencyEvent];
+ if ([obj isKindOfClass:SDLEmergencyEvent.class]) {
+ return (SDLEmergencyEvent*)obj;
+ } else {
+ return [[SDLEmergencyEvent alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setClusterModeStatus:(SDLClusterModeStatus*) clusterModeStatus {
+ if (clusterModeStatus != nil) {
+ [parameters setObject:clusterModeStatus forKey:NAMES_clusterModeStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_clusterModeStatus];
+ }
+}
+
+-(SDLClusterModeStatus*) clusterModeStatus {
+ NSObject* obj = [parameters objectForKey:NAMES_clusterModeStatus];
+ if ([obj isKindOfClass:SDLClusterModeStatus.class]) {
+ return (SDLClusterModeStatus*)obj;
+ } else {
+ return [[SDLClusterModeStatus alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setMyKey:(SDLMyKey*) myKey {
+ if (myKey != nil) {
+ [parameters setObject:myKey forKey:NAMES_myKey];
+ } else {
+ [parameters removeObjectForKey:NAMES_myKey];
+ }
+}
+
+-(SDLMyKey*) myKey {
+ NSObject* obj = [parameters objectForKey:NAMES_myKey];
+ if ([obj isKindOfClass:SDLMyKey.class]) {
+ return (SDLMyKey*)obj;
+ } else {
+ return [[SDLMyKey alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLGlobalProperty.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGlobalProperty.h
new file mode 100644
index 000000000..b7c6fda82
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGlobalProperty.h
@@ -0,0 +1,21 @@
+// SDLGlobalProperty.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLGlobalProperty : SDLEnum {}
+
++(SDLGlobalProperty*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLGlobalProperty*) HELPPROMPT;
++(SDLGlobalProperty*) TIMEOUTPROMPT;
++(SDLGlobalProperty*) VRHELPTITLE;
++(SDLGlobalProperty*) VRHELPITEMS;
++(SDLGlobalProperty*) MENUNAME;
++(SDLGlobalProperty*) MENUICON;
++(SDLGlobalProperty*) KEYBOARDPROPERTIES;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLGlobalProperty.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGlobalProperty.m
new file mode 100644
index 000000000..d5e49335c
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLGlobalProperty.m
@@ -0,0 +1,92 @@
+// SDLGlobalProperty.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLGlobalProperty.h"
+
+SDLGlobalProperty* SDLGlobalProperty_HELPPROMPT = nil;
+SDLGlobalProperty* SDLGlobalProperty_TIMEOUTPROMPT = nil;
+SDLGlobalProperty* SDLGlobalProperty_VRHELPTITLE = nil;
+SDLGlobalProperty* SDLGlobalProperty_VRHELPITEMS = nil;
+SDLGlobalProperty* SDLGlobalProperty_MENUNAME = nil;
+SDLGlobalProperty* SDLGlobalProperty_MENUICON = nil;
+SDLGlobalProperty* SDLGlobalProperty_KEYBOARDPROPERTIES = nil;
+
+NSMutableArray* SDLGlobalProperty_values = nil;
+
+@implementation SDLGlobalProperty
+
++(SDLGlobalProperty*) valueOf:(NSString*) value {
+ for (SDLGlobalProperty* item in SDLGlobalProperty.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLGlobalProperty_values == nil) {
+ SDLGlobalProperty_values = [[NSMutableArray alloc] initWithObjects:
+ SDLGlobalProperty.HELPPROMPT,
+ SDLGlobalProperty.TIMEOUTPROMPT,
+ SDLGlobalProperty.VRHELPTITLE,
+ SDLGlobalProperty.VRHELPITEMS,
+ SDLGlobalProperty.MENUNAME,
+ SDLGlobalProperty.MENUICON,
+ SDLGlobalProperty.KEYBOARDPROPERTIES,
+ nil];
+ }
+ return SDLGlobalProperty_values;
+}
+
++(SDLGlobalProperty*) HELPPROMPT {
+ if (SDLGlobalProperty_HELPPROMPT == nil) {
+ SDLGlobalProperty_HELPPROMPT = [[SDLGlobalProperty alloc] initWithValue:@"HELPPROMPT"];
+ }
+ return SDLGlobalProperty_HELPPROMPT;
+}
+
++(SDLGlobalProperty*) TIMEOUTPROMPT {
+ if (SDLGlobalProperty_TIMEOUTPROMPT == nil) {
+ SDLGlobalProperty_TIMEOUTPROMPT = [[SDLGlobalProperty alloc] initWithValue:@"TIMEOUTPROMPT"];
+ }
+ return SDLGlobalProperty_TIMEOUTPROMPT;
+}
+
++(SDLGlobalProperty*) VRHELPTITLE {
+ if (SDLGlobalProperty_VRHELPTITLE == nil) {
+ SDLGlobalProperty_VRHELPTITLE = [[SDLGlobalProperty alloc] initWithValue:@"VRHELPTITLE"];
+ }
+ return SDLGlobalProperty_VRHELPTITLE;
+}
+
++(SDLGlobalProperty*) VRHELPITEMS {
+ if (SDLGlobalProperty_VRHELPITEMS == nil) {
+ SDLGlobalProperty_VRHELPITEMS = [[SDLGlobalProperty alloc] initWithValue:@"VRHELPITEMS"];
+ }
+ return SDLGlobalProperty_VRHELPITEMS;
+}
+
++(SDLGlobalProperty*) MENUNAME {
+ if (SDLGlobalProperty_MENUNAME == nil) {
+ SDLGlobalProperty_MENUNAME = [[SDLGlobalProperty alloc] initWithValue:@"MENUNAME"];
+ }
+ return SDLGlobalProperty_MENUNAME;
+}
+
++(SDLGlobalProperty*) MENUICON {
+ if (SDLGlobalProperty_MENUICON == nil) {
+ SDLGlobalProperty_MENUICON = [[SDLGlobalProperty alloc] initWithValue:@"MENUICON"];
+ }
+ return SDLGlobalProperty_MENUICON;
+}
+
++(SDLGlobalProperty*) KEYBOARDPROPERTIES {
+ if (SDLGlobalProperty_KEYBOARDPROPERTIES == nil) {
+ SDLGlobalProperty_KEYBOARDPROPERTIES = [[SDLGlobalProperty alloc] initWithValue:@"KEYBOARDPROPERTIES"];
+ }
+ return SDLGlobalProperty_KEYBOARDPROPERTIES;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLHMILevel.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLHMILevel.h
new file mode 100644
index 000000000..34999b68e
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLHMILevel.h
@@ -0,0 +1,18 @@
+// SDLHMILevel.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLHMILevel : SDLEnum {}
+
++(SDLHMILevel*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLHMILevel*) HMI_FULL;
++(SDLHMILevel*) HMI_LIMITED;
++(SDLHMILevel*) HMI_BACKGROUND;
++(SDLHMILevel*) HMI_NONE;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLHMILevel.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLHMILevel.m
new file mode 100644
index 000000000..dc072ef0e
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLHMILevel.m
@@ -0,0 +1,65 @@
+// SDLHMILevel.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLHMILevel.h"
+
+SDLHMILevel* SDLHMILevel_HMI_FULL = nil;
+SDLHMILevel* SDLHMILevel_HMI_LIMITED = nil;
+SDLHMILevel* SDLHMILevel_HMI_BACKGROUND = nil;
+SDLHMILevel* SDLHMILevel_HMI_NONE = nil;
+
+NSMutableArray* SDLHMILevel_values = nil;
+
+@implementation SDLHMILevel
+
++(SDLHMILevel*) valueOf:(NSString*) value {
+ for (SDLHMILevel* item in SDLHMILevel.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLHMILevel_values == nil) {
+ SDLHMILevel_values = [[NSMutableArray alloc] initWithObjects:
+ SDLHMILevel.HMI_FULL,
+ SDLHMILevel.HMI_LIMITED,
+ SDLHMILevel.HMI_BACKGROUND,
+ SDLHMILevel.HMI_NONE,
+ nil];
+ }
+ return SDLHMILevel_values;
+}
+
++(SDLHMILevel*) HMI_FULL {
+ if (SDLHMILevel_HMI_FULL == nil) {
+ SDLHMILevel_HMI_FULL = [[SDLHMILevel alloc] initWithValue:@"FULL"];
+ }
+ return SDLHMILevel_HMI_FULL;
+}
+
++(SDLHMILevel*) HMI_LIMITED {
+ if (SDLHMILevel_HMI_LIMITED == nil) {
+ SDLHMILevel_HMI_LIMITED = [[SDLHMILevel alloc] initWithValue:@"LIMITED"];
+ }
+ return SDLHMILevel_HMI_LIMITED;
+}
+
++(SDLHMILevel*) HMI_BACKGROUND {
+ if (SDLHMILevel_HMI_BACKGROUND == nil) {
+ SDLHMILevel_HMI_BACKGROUND = [[SDLHMILevel alloc] initWithValue:@"BACKGROUND"];
+ }
+ return SDLHMILevel_HMI_BACKGROUND;
+}
+
++(SDLHMILevel*) HMI_NONE {
+ if (SDLHMILevel_HMI_NONE == nil) {
+ SDLHMILevel_HMI_NONE = [[SDLHMILevel alloc] initWithValue:@"NONE"];
+ }
+ return SDLHMILevel_HMI_NONE;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLHMIPermissions.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLHMIPermissions.h
new file mode 100644
index 000000000..bf24865cb
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLHMIPermissions.h
@@ -0,0 +1,16 @@
+// SDLHMIPermissions.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+@interface SDLHMIPermissions : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSMutableArray* allowed;
+@property(strong) NSMutableArray* userDisallowed;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLHMIPermissions.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLHMIPermissions.m
new file mode 100644
index 000000000..85d5f9e3c
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLHMIPermissions.m
@@ -0,0 +1,64 @@
+// SDLHMIPermissions.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLHMIPermissions.h"
+
+#import "SDLNames.h"
+#import "SDLHMILevel.h"
+
+@implementation SDLHMIPermissions
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setAllowed:(NSMutableArray*) allowed {
+ if (allowed != nil) {
+ [store setObject:allowed forKey:NAMES_allowed];
+ } else {
+ [store removeObjectForKey:NAMES_allowed];
+ }
+}
+
+-(NSMutableArray*) allowed {
+ NSMutableArray* array = [store objectForKey:NAMES_allowed];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLHMILevel.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSString* enumString in array) {
+ [newList addObject:[SDLHMILevel valueOf:enumString]];
+ }
+ return newList;
+ }
+}
+
+-(void) setUserDisallowed:(NSMutableArray*) userDisallowed {
+ if (userDisallowed != nil) {
+ [store setObject:userDisallowed forKey:NAMES_userDisallowed];
+ } else {
+ [store removeObjectForKey:NAMES_userDisallowed];
+ }
+}
+
+-(NSMutableArray*) userDisallowed {
+ NSMutableArray* array = [store objectForKey:NAMES_userDisallowed];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLHMILevel.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSString* enumString in array) {
+ [newList addObject:[SDLHMILevel valueOf:enumString]];
+ }
+ return newList;
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLHMIZoneCapabilities.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLHMIZoneCapabilities.h
new file mode 100644
index 000000000..32ec2c649
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLHMIZoneCapabilities.h
@@ -0,0 +1,16 @@
+// SDLHmiZoneCapabilities.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLHmiZoneCapabilities : SDLEnum {}
+
++(SDLHmiZoneCapabilities*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLHmiZoneCapabilities*) FRONT;
++(SDLHmiZoneCapabilities*) BACK;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLHMIZoneCapabilities.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLHMIZoneCapabilities.m
new file mode 100644
index 000000000..011238797
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLHMIZoneCapabilities.m
@@ -0,0 +1,47 @@
+// SDLHmiZoneCapabilities.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLHmiZoneCapabilities.h"
+
+SDLHmiZoneCapabilities* SDLHmiZoneCapabilities_FRONT = nil;
+SDLHmiZoneCapabilities* SDLHmiZoneCapabilities_BACK = nil;
+
+NSMutableArray* SDLHmiZoneCapabilities_values = nil;
+
+@implementation SDLHmiZoneCapabilities
+
++(SDLHmiZoneCapabilities*) valueOf:(NSString*) value {
+ for (SDLHmiZoneCapabilities* item in SDLHmiZoneCapabilities.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLHmiZoneCapabilities_values == nil) {
+ SDLHmiZoneCapabilities_values = [[NSMutableArray alloc] initWithObjects:
+ SDLHmiZoneCapabilities.FRONT,
+ SDLHmiZoneCapabilities.BACK,
+ nil];
+ }
+ return SDLHmiZoneCapabilities_values;
+}
+
++(SDLHmiZoneCapabilities*) FRONT {
+ if (SDLHmiZoneCapabilities_FRONT == nil) {
+ SDLHmiZoneCapabilities_FRONT = [[SDLHmiZoneCapabilities alloc] initWithValue:@"FRONT"];
+ }
+ return SDLHmiZoneCapabilities_FRONT;
+}
+
++(SDLHmiZoneCapabilities*) BACK {
+ if (SDLHmiZoneCapabilities_BACK == nil) {
+ SDLHmiZoneCapabilities_BACK = [[SDLHmiZoneCapabilities alloc] initWithValue:@"BACK"];
+ }
+ return SDLHmiZoneCapabilities_BACK;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLHeadLampStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLHeadLampStatus.h
new file mode 100644
index 000000000..f65364be6
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLHeadLampStatus.h
@@ -0,0 +1,19 @@
+// SDLHeadLampStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLAmbientLightStatus.h"
+
+@interface SDLHeadLampStatus : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* lowBeamsOn;
+@property(strong) NSNumber* highBeamsOn;
+@property(strong) SDLAmbientLightStatus* ambientLightSensorStatus;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLHeadLampStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLHeadLampStatus.m
new file mode 100644
index 000000000..c0c349a9c
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLHeadLampStatus.m
@@ -0,0 +1,62 @@
+// SDLHeadLampStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLHeadLampStatus.h"
+
+#import "SDLNames.h"
+
+@implementation SDLHeadLampStatus
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setLowBeamsOn:(NSNumber*) lowBeamsOn {
+ if (lowBeamsOn != nil) {
+ [store setObject:lowBeamsOn forKey:NAMES_lowBeamsOn];
+ } else {
+ [store removeObjectForKey:NAMES_lowBeamsOn];
+ }
+}
+
+-(NSNumber*) lowBeamsOn {
+ return [store objectForKey:NAMES_lowBeamsOn];
+}
+
+-(void) setHighBeamsOn:(NSNumber*) highBeamsOn {
+ if (highBeamsOn != nil) {
+ [store setObject:highBeamsOn forKey:NAMES_highBeamsOn];
+ } else {
+ [store removeObjectForKey:NAMES_highBeamsOn];
+ }
+}
+
+-(NSNumber*) highBeamsOn {
+ return [store objectForKey:NAMES_highBeamsOn];
+}
+
+-(void) setAmbientLightSensorStatus:(SDLAmbientLightStatus*) ambientLightSensorStatus {
+ if (ambientLightSensorStatus != nil) {
+ [store setObject:ambientLightSensorStatus forKey:NAMES_ambientLightSensorStatus];
+ } else {
+ [store removeObjectForKey:NAMES_ambientLightSensorStatus];
+ }
+}
+
+-(SDLAmbientLightStatus*) ambientLightSensorStatus {
+ NSObject* obj = [store objectForKey:NAMES_ambientLightSensorStatus];
+ if ([obj isKindOfClass:SDLAmbientLightStatus.class]) {
+ return (SDLAmbientLightStatus*)obj;
+ } else {
+ return [SDLAmbientLightStatus valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLHexUtility.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLHexUtility.h
new file mode 100644
index 000000000..cbd1bd0b6
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLHexUtility.h
@@ -0,0 +1,13 @@
+//
+// SDLHexUtility.h
+// SmartDeviceLink
+//
+
+@import Foundation;
+
+@interface SDLHexUtility : NSObject
+
++ (NSString *)getHexString:(UInt8 *)bytes length:(int)length;
++ (NSString *)getHexString:(NSData *)data;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLHexUtility.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLHexUtility.m
new file mode 100644
index 000000000..50ad95979
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLHexUtility.m
@@ -0,0 +1,23 @@
+//
+// SDLHexUtility.m
+// SmartDeviceLink
+//
+
+#import "SDLHexUtility.h"
+
+@implementation SDLHexUtility
+
++ (NSString*)getHexString:(UInt8 *)bytes length:(int)length {
+ NSMutableString* ret = [NSMutableString stringWithCapacity:(length * 2)];
+ for (int i = 0; i < length; i++) {
+ [ret appendFormat:@"%02X", ((Byte*)bytes)[i]];
+ }
+ return ret;
+}
+
++ (NSString *)getHexString:(NSData *)data {
+ return [self getHexString:(Byte*)data.bytes length:(int)data.length];
+}
+
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLIAPTransport.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLIAPTransport.h
new file mode 100644
index 000000000..0ac268a6f
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLIAPTransport.h
@@ -0,0 +1,13 @@
+// SDLIAPTransport.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import <ExternalAccessory/ExternalAccessory.h>
+#import "SDLAbstractTransport.h"
+
+@interface SDLIAPTransport : SDLAbstractTransport <NSStreamDelegate> {}
+
+@property (assign) BOOL forceLegacy;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLIAPTransport.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLIAPTransport.m
new file mode 100644
index 000000000..f45fb7aab
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLIAPTransport.m
@@ -0,0 +1,439 @@
+// SDLIAPTransport.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+@import Foundation;
+@import UIKit;
+
+#import "SDLIAPTransport.h"
+#import "SDLDebugTool.h"
+#import "SDLSiphonServer.h"
+
+#define LEGACY_PROTOCOL_STRING @"com.ford.sync.prot0"
+#define CONTROL_PROTOCOL_STRING @"com.smartdevicelink.prot0"
+
+#define IAP_INPUT_BUFFER_SIZE 1024
+
+
+@interface SDLIAPTransport ()
+
+@property (strong) EASession *session;
+@property (strong) EAAccessory *accessory;
+@property (strong) NSMutableData *writeData;
+@property (assign) BOOL onControlProtocol;
+@property (assign) BOOL useLegacyProtocol;
+@property (strong) NSString *protocolString;
+@property (assign) BOOL isOutputStreamReady;
+@property (assign) BOOL isInputStreamReady;
+@property (assign) BOOL transportReady;
+
+
+@property (strong) NSTimer* backgroundedTimer;
+
+
+@end
+
+
+
+@implementation SDLIAPTransport
+
+- (id)init {
+ if (self = [super initWithEndpoint:nil endpointParam:nil]) {
+
+ [SDLDebugTool logInfo:@"Init" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(accessoryConnected:) name:EAAccessoryDidConnectNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(accessoryDisconnected:) name:EAAccessoryDidDisconnectNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillEnterForeground:) name:UIApplicationWillEnterForegroundNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidEnterBackground:) name:UIApplicationDidEnterBackgroundNotification object:nil];
+
+ [SDLSiphonServer init];
+ }
+ return self;
+}
+
+
+#pragma mark -
+#pragma mark SDLTransport Implementation
+
+- (void)connect {
+ [SDLDebugTool logInfo:@"Connect" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+ if (!self.session){
+ [self checkForValidConnectedAccessory];
+
+ if (self.accessory && self.protocolString) {
+ [self openSession];
+ } else {
+ [SDLDebugTool logInfo:@"No Devices Found" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ }
+ } else {
+ [SDLDebugTool logInfo:@"Session Already Open" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ }
+}
+
+- (void)disconnect {
+ [SDLDebugTool logInfo:@"Disconnect" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+ if (self.session) {
+ [self closeSession];
+
+ if (!self.onControlProtocol) {
+ [SDLDebugTool logInfo:@"Transport Not Ready" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ self.transportReady = NO;
+ [self notifyTransportDisconnected];
+ }
+ }
+}
+
+- (void)sendData:(NSData*) data {
+ [self writeDataOut:data];
+}
+
+
+
+#pragma mark -
+#pragma mark EAAccessory Notifications
+
+- (void)accessoryConnected:(NSNotification*) notification {
+ [SDLDebugTool logInfo:@"Accessory Connected" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ [self connect];
+}
+
+- (void)accessoryDisconnected:(NSNotification*) notification {
+ [SDLDebugTool logInfo:@"Accessory Disconnected" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ [self disconnect];
+}
+
+-(void)applicationWillEnterForeground:(NSNotification *)notification {
+ [SDLDebugTool logInfo:@"Will Enter Foreground" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ //TODO:DEBUG
+ // [self.backgroundedTimer invalidate];
+
+ [self setupControllerForAccessory:nil withProtocolString:nil];
+ [self connect];
+}
+
+-(void)applicationDidEnterBackground:(NSNotification *)notification {
+ [SDLDebugTool logInfo:@"Did Enter Background" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ //TODO:DEBUG
+ // self.backgroundedTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(backgroundButAwake:) userInfo: nil repeats: YES];
+}
+
+
+#pragma mark -
+#pragma mark Response Timers
+
+
+- (void)protocolIndexRestart{
+
+ //TODO:DEBUG
+ [SDLDebugTool logInfo:@"PI Timer" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+ if (!self.transportReady) {
+ [SDLDebugTool logInfo:@"PI Restart" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ [self closeSession];
+ [self connect];
+ }
+
+}
+
+
+
+#pragma mark -
+#pragma mark NSStreamDelegateEventExtensions
+
+- (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)event
+{
+
+ switch (event) {
+ case NSStreamEventNone:
+ break;
+ case NSStreamEventOpenCompleted:
+ {
+ if (stream == [_session outputStream]) {
+ self.isOutputStreamReady = YES;
+ } else if (stream == [_session inputStream]) {
+ self.isInputStreamReady = YES;
+ }
+
+ if (self.isOutputStreamReady && self.isInputStreamReady) {
+ [SDLDebugTool logInfo:@"Streams Event Open" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+ if (self.onControlProtocol) {
+ [SDLDebugTool logInfo:@"Waiting For Protocol Index" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+ //Begin Connection Retry
+// float randomNumber = (float)arc4random() / UINT_MAX; // between 0 and 1
+// float randomMinMax = 0.0f + (0.5f-0.0f)*randomNumber; // between Min (0.0) and Max (0.5)
+
+ //[SDLDebugTool logInfo:[NSString stringWithFormat:@"Wait: %f", 1.5f] withType:SDLDebugType_Transport_iAP];
+
+ //TODO:DEBUG
+// [self performSelector:@selector(protocolIndexRestart) withObject:nil afterDelay:2.5f];
+
+ } else {
+ [SDLDebugTool logInfo:@"Transport Ready" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ self.transportReady = YES;
+ [self notifyTransportConnected];
+ }
+
+ }
+ break;
+ }
+ case NSStreamEventHasBytesAvailable:
+ [self readDataIn];
+ break;
+ case NSStreamEventHasSpaceAvailable:
+ break;
+ case NSStreamEventErrorOccurred:
+ {
+ NSString *logMessage = [NSString stringWithFormat:@"Stream Error:%@", [[stream streamError] localizedDescription]];
+ [SDLDebugTool logInfo:logMessage withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ break;
+ }
+ case NSStreamEventEndEncountered:
+ {
+ if (stream == [_session outputStream]) {
+ self.isOutputStreamReady = NO;
+ } else if (stream == [_session inputStream]) {
+ self.isInputStreamReady = NO;
+ }
+
+ if (!self.isOutputStreamReady && !self.isInputStreamReady) {
+ [SDLDebugTool logInfo:@"Streams Event End" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ [self disconnect];
+ [self connect];
+ }
+ break;
+ }
+ default:
+ break;
+ }
+}
+
+
+
+#pragma mark -
+#pragma mark Class Methods
+
+- (void)setupControllerForAccessory:(EAAccessory *)accessory withProtocolString:(NSString *)protocolString
+{
+ self.accessory = accessory;
+ self.protocolString = protocolString;
+}
+
+- (void)checkForValidConnectedAccessory {
+ for (EAAccessory* accessory in [[EAAccessoryManager sharedAccessoryManager] connectedAccessories]) {
+
+ [SDLDebugTool logInfo:[NSString stringWithFormat:@"Check Accessory: %@", accessory] withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+ self.useLegacyProtocol = NO;
+
+ if (self.forceLegacy) {
+ self.useLegacyProtocol = YES;
+ }
+ else {
+ for (NSString *protocolString in [accessory protocolStrings]) {
+ if ([protocolString isEqualToString:LEGACY_PROTOCOL_STRING]) {
+ self.useLegacyProtocol = YES;
+ }
+
+ if ([protocolString isEqualToString:CONTROL_PROTOCOL_STRING]) {
+ [SDLDebugTool logInfo:[NSString stringWithFormat:@"MultiApp Sync @ %@", CONTROL_PROTOCOL_STRING] withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+ self.useLegacyProtocol = NO;
+
+ [self setupControllerForAccessory:accessory withProtocolString:CONTROL_PROTOCOL_STRING];
+ return;
+ }
+ }
+ }
+
+ if (self.useLegacyProtocol) {
+ [SDLDebugTool logInfo:[NSString stringWithFormat:@"Legacy Sync @ %@", LEGACY_PROTOCOL_STRING] withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+ [self setupControllerForAccessory:accessory withProtocolString:LEGACY_PROTOCOL_STRING];
+ return;
+ }
+ }
+}
+
+- (void)dealloc {
+ [SDLDebugTool logInfo:@"Dealloc" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+ [self closeSession];
+ [self setupControllerForAccessory:nil withProtocolString:nil];
+
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:EAAccessoryDidConnectNotification object:nil];
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:EAAccessoryDidDisconnectNotification object:nil];
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidEnterBackgroundNotification object:nil];
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationWillEnterForegroundNotification object:nil];
+}
+
+
+
+#pragma mark Session Control
+
+- (void)openSession {
+ if (self.accessory && self.protocolString) {
+
+ self.session = [[EASession alloc] initWithAccessory:self.accessory forProtocol:self.protocolString];
+
+ if (self.session) {
+ [SDLDebugTool logInfo:@"Opening Streams" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+ [[self.session inputStream] setDelegate:self];
+ [[self.session inputStream] scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
+ [[self.session inputStream] open];
+
+ [[self.session outputStream] setDelegate:self];
+ [[self.session outputStream] scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
+ [[self.session outputStream] open];
+
+ if ([self.protocolString isEqualToString:CONTROL_PROTOCOL_STRING]) {
+ self.onControlProtocol = YES;
+ }
+ } else {
+ if ([self.protocolString isEqualToString:CONTROL_PROTOCOL_STRING]) {
+ [SDLDebugTool logInfo:@"Session Not Opened (Control Protocol)" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+ //Begin Connection Retry
+ float randomNumber = (float)arc4random() / UINT_MAX; // between 0 and 1
+ float randomMinMax = 0.0f + (0.5f-0.0f)*randomNumber; // between Min (0.0) and Max (0.5)
+
+ [SDLDebugTool logInfo:[NSString stringWithFormat:@"Wait: %f", randomMinMax] withType:SDLDebugType_Transport_iAP];
+ [self performSelector:@selector(openSession) withObject:nil afterDelay:randomNumber];
+ } else {
+ [SDLDebugTool logInfo:@"Session Not Opened" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ }
+ }
+ } else {
+ [SDLDebugTool logInfo:@"Accessory Or Protocol String Not Set" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ }
+}
+
+- (void)closeSession {
+ if (self.session) {
+ [SDLDebugTool logInfo:@"Closing Streams" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+ [[self.session inputStream] close];
+ [[self.session inputStream] removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
+ [[self.session inputStream] setDelegate:nil];
+
+ [[self.session outputStream] close];
+ [[self.session outputStream] removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
+ [[self.session outputStream] setDelegate:nil];
+
+ self.session = nil;
+ self.writeData = nil;
+
+ self.isOutputStreamReady = NO;
+ self.isInputStreamReady = NO;
+ }
+}
+
+
+
+#pragma mark Low Level Read/Write
+
+// Write data to the accessory while there is space available and data to write
+- (void)writeDataOut:(NSData *)dataOut {
+
+ NSMutableData *remainder = dataOut.mutableCopy;
+
+ while (1) {
+ if (remainder.length == 0) break;
+
+ if ( [[self.session outputStream] hasSpaceAvailable] ) {
+
+ //TODO: Added for debug, issue with module
+ //[NSThread sleepForTimeInterval:0.020];
+
+ NSInteger bytesWritten = [[self.session outputStream] write:remainder.bytes maxLength:remainder.length];
+ if (bytesWritten == -1) {
+ NSLog(@"Error: %@", [[self.session outputStream] streamError]);
+ break;
+ }
+
+ NSString *logMessage = [NSString stringWithFormat:@"Outgoing: (%ld)", (long)bytesWritten];
+ [SDLDebugTool logInfo:logMessage
+ andBinaryData:[remainder subdataWithRange:NSMakeRange(0, bytesWritten)]
+ withType:SDLDebugType_Transport_iAP
+ toOutput:SDLDebugOutput_File];
+
+ [remainder replaceBytesInRange:NSMakeRange(0, bytesWritten) withBytes:NULL length:0];
+ }
+ }
+
+}
+
+// Read data while there is data and space available in the input buffer
+- (void)readDataIn {
+ uint8_t buf[IAP_INPUT_BUFFER_SIZE];
+ while ([[self.session inputStream] hasBytesAvailable])
+ {
+ NSInteger bytesRead = [[self.session inputStream] read:buf maxLength:IAP_INPUT_BUFFER_SIZE];
+
+ NSData *dataIn = [NSData dataWithBytes:buf length:bytesRead];
+
+ NSString *logMessage = [NSString stringWithFormat:@"Incoming: (%ld)", (long)bytesRead];
+ [SDLDebugTool logInfo:logMessage
+ andBinaryData:dataIn
+ withType:SDLDebugType_Transport_iAP
+ toOutput:SDLDebugOutput_File];
+
+ if (bytesRead > 0) {
+ // TODO: change this to ndsata parameter for consistency
+ [self handleBytesReceivedFromTransport:buf length:bytesRead];
+ } else {
+ break;
+ }
+ }
+}
+
+
+
+#pragma mark -
+#pragma mark Overridden Methods
+
+- (void)handleBytesReceivedFromTransport:(Byte *)receivedBytes length:(NSInteger)receivedBytesLength {
+
+ if (self.onControlProtocol){
+
+ NSNumber *dataProtocol = [NSNumber numberWithUnsignedInt:receivedBytes[0]];
+
+ [SDLDebugTool logInfo:[NSString stringWithFormat:@"Moving To Protocol Index: %@", dataProtocol] withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+ if ([dataProtocol isEqualToNumber:[NSNumber numberWithInt:255]]) {
+ [SDLDebugTool logInfo:@"All Available Protocol Strings Are In Use" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+ //FIXME: Restart but dont call back up to app or connect will keep getting called when busy...
+ return;
+ }
+ else {
+ NSString *currentProtocolString = [NSString stringWithFormat:@"com.smartdevicelink.prot%@", dataProtocol];
+
+ [self closeSession];
+ self.onControlProtocol = NO;
+
+ [self setupControllerForAccessory:self.accessory withProtocolString:currentProtocolString];
+ [self openSession];
+ }
+ }
+ else {
+ [super handleDataReceivedFromTransport:[NSData dataWithBytes:receivedBytes length:receivedBytesLength]];
+ }
+}
+
+
+
+#pragma mark -
+#pragma mark Debug Helpers
+
+-(void) backgroundButAwake:(NSTimer*) t
+{
+ [SDLDebugTool logInfo:@"Still Awake..." withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLIgnitionStableStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLIgnitionStableStatus.h
new file mode 100644
index 000000000..baeff4301
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLIgnitionStableStatus.h
@@ -0,0 +1,17 @@
+// SDLIgnitionStableStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLIgnitionStableStatus : SDLEnum {}
+
++(SDLIgnitionStableStatus*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLIgnitionStableStatus*) IGNITION_SWITCH_NOT_STABLE;
++(SDLIgnitionStableStatus*) IGNITION_SWITCH_STABLE;
++(SDLIgnitionStableStatus*) MISSING_FROM_TRANSMITTER;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLIgnitionStableStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLIgnitionStableStatus.m
new file mode 100644
index 000000000..c9aeb300c
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLIgnitionStableStatus.m
@@ -0,0 +1,56 @@
+// SDLIgnitionStableStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLIgnitionStableStatus.h"
+
+SDLIgnitionStableStatus* SDLIgnitionStableStatus_IGNITION_SWITCH_NOT_STABLE = nil;
+SDLIgnitionStableStatus* SDLIgnitionStableStatus_IGNITION_SWITCH_STABLE = nil;
+SDLIgnitionStableStatus* SDLIgnitionStableStatus_MISSING_FROM_TRANSMITTER = nil;
+
+NSMutableArray* SDLIgnitionStableStatus_values = nil;
+
+@implementation SDLIgnitionStableStatus
+
++(SDLIgnitionStableStatus*) valueOf:(NSString*) value {
+ for (SDLIgnitionStableStatus* item in SDLIgnitionStableStatus.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLIgnitionStableStatus_values == nil) {
+ SDLIgnitionStableStatus_values = [[NSMutableArray alloc] initWithObjects:
+ SDLIgnitionStableStatus.IGNITION_SWITCH_NOT_STABLE,
+ SDLIgnitionStableStatus.IGNITION_SWITCH_STABLE,
+ SDLIgnitionStableStatus.MISSING_FROM_TRANSMITTER,
+ nil];
+ }
+ return SDLIgnitionStableStatus_values;
+}
+
++(SDLIgnitionStableStatus*) IGNITION_SWITCH_NOT_STABLE {
+ if (SDLIgnitionStableStatus_IGNITION_SWITCH_NOT_STABLE == nil) {
+ SDLIgnitionStableStatus_IGNITION_SWITCH_NOT_STABLE = [[SDLIgnitionStableStatus alloc] initWithValue:@"IGNITION_SWITCH_NOT_STABLE"];
+ }
+ return SDLIgnitionStableStatus_IGNITION_SWITCH_NOT_STABLE;
+}
+
++(SDLIgnitionStableStatus*) IGNITION_SWITCH_STABLE {
+ if (SDLIgnitionStableStatus_IGNITION_SWITCH_STABLE == nil) {
+ SDLIgnitionStableStatus_IGNITION_SWITCH_STABLE = [[SDLIgnitionStableStatus alloc] initWithValue:@"IGNITION_SWITCH_STABLE"];
+ }
+ return SDLIgnitionStableStatus_IGNITION_SWITCH_STABLE;
+}
+
++(SDLIgnitionStableStatus*) MISSING_FROM_TRANSMITTER {
+ if (SDLIgnitionStableStatus_MISSING_FROM_TRANSMITTER == nil) {
+ SDLIgnitionStableStatus_MISSING_FROM_TRANSMITTER = [[SDLIgnitionStableStatus alloc] initWithValue:@"MISSING_FROM_TRANSMITTER"];
+ }
+ return SDLIgnitionStableStatus_MISSING_FROM_TRANSMITTER;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLIgnitionStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLIgnitionStatus.h
new file mode 100644
index 000000000..d4df46eb9
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLIgnitionStatus.h
@@ -0,0 +1,20 @@
+// SDLIgnitionStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLIgnitionStatus : SDLEnum {}
+
++(SDLIgnitionStatus*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLIgnitionStatus*) UNKNOWN;
++(SDLIgnitionStatus*) OFF;
++(SDLIgnitionStatus*) ACCESSORY;
++(SDLIgnitionStatus*) RUN;
++(SDLIgnitionStatus*) START;
++(SDLIgnitionStatus*) INVALID;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLIgnitionStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLIgnitionStatus.m
new file mode 100644
index 000000000..d01f38b6a
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLIgnitionStatus.m
@@ -0,0 +1,83 @@
+// SDLIgnitionStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLIgnitionStatus.h"
+
+SDLIgnitionStatus* SDLIgnitionStatus_UNKNOWN = nil;
+SDLIgnitionStatus* SDLIgnitionStatus_OFF = nil;
+SDLIgnitionStatus* SDLIgnitionStatus_ACCESSORY = nil;
+SDLIgnitionStatus* SDLIgnitionStatus_RUN = nil;
+SDLIgnitionStatus* SDLIgnitionStatus_START = nil;
+SDLIgnitionStatus* SDLIgnitionStatus_INVALID = nil;
+
+NSMutableArray* SDLIgnitionStatus_values = nil;
+
+@implementation SDLIgnitionStatus
+
++(SDLIgnitionStatus*) valueOf:(NSString*) value {
+ for (SDLIgnitionStatus* item in SDLIgnitionStatus.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLIgnitionStatus_values == nil) {
+ SDLIgnitionStatus_values = [[NSMutableArray alloc] initWithObjects:
+ SDLIgnitionStatus.UNKNOWN,
+ SDLIgnitionStatus.OFF,
+ SDLIgnitionStatus.ACCESSORY,
+ SDLIgnitionStatus.RUN,
+ SDLIgnitionStatus.START,
+ SDLIgnitionStatus.INVALID,
+ nil];
+ }
+ return SDLIgnitionStatus_values;
+}
+
++(SDLIgnitionStatus*) UNKNOWN {
+ if (SDLIgnitionStatus_UNKNOWN == nil) {
+ SDLIgnitionStatus_UNKNOWN = [[SDLIgnitionStatus alloc] initWithValue:@"UNKNOWN"];
+ }
+ return SDLIgnitionStatus_UNKNOWN;
+}
+
++(SDLIgnitionStatus*) OFF {
+ if (SDLIgnitionStatus_OFF == nil) {
+ SDLIgnitionStatus_OFF = [[SDLIgnitionStatus alloc] initWithValue:@"OFF"];
+ }
+ return SDLIgnitionStatus_OFF;
+}
+
++(SDLIgnitionStatus*) ACCESSORY {
+ if (SDLIgnitionStatus_ACCESSORY == nil) {
+ SDLIgnitionStatus_ACCESSORY = [[SDLIgnitionStatus alloc] initWithValue:@"ACCESSORY"];
+ }
+ return SDLIgnitionStatus_ACCESSORY;
+}
+
++(SDLIgnitionStatus*) RUN {
+ if (SDLIgnitionStatus_RUN == nil) {
+ SDLIgnitionStatus_RUN = [[SDLIgnitionStatus alloc] initWithValue:@"RUN"];
+ }
+ return SDLIgnitionStatus_RUN;
+}
+
++(SDLIgnitionStatus*) START {
+ if (SDLIgnitionStatus_START == nil) {
+ SDLIgnitionStatus_START = [[SDLIgnitionStatus alloc] initWithValue:@"START"];
+ }
+ return SDLIgnitionStatus_START;
+}
+
++(SDLIgnitionStatus*) INVALID {
+ if (SDLIgnitionStatus_INVALID == nil) {
+ SDLIgnitionStatus_INVALID = [[SDLIgnitionStatus alloc] initWithValue:@"INVALID"];
+ }
+ return SDLIgnitionStatus_INVALID;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLImage.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLImage.h
new file mode 100644
index 000000000..26a002104
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLImage.h
@@ -0,0 +1,18 @@
+// SDLImage.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLImageType.h"
+
+@interface SDLImage : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSString* value;
+@property(strong) SDLImageType* imageType;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLImage.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLImage.m
new file mode 100644
index 000000000..1ab97489e
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLImage.m
@@ -0,0 +1,50 @@
+// SDLImage.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLImage.h"
+
+#import "SDLNames.h"
+
+@implementation SDLImage
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setValue:(NSString*) value {
+ if (value != nil) {
+ [store setObject:value forKey:NAMES_value];
+ } else {
+ [store removeObjectForKey:NAMES_value];
+ }
+}
+
+-(NSString*) value {
+ return [store objectForKey:NAMES_value];
+}
+
+-(void) setImageType:(SDLImageType*) imageType {
+ if (imageType != nil) {
+ [store setObject:imageType forKey:NAMES_imageType];
+ } else {
+ [store removeObjectForKey:NAMES_imageType];
+ }
+}
+
+-(SDLImageType*) imageType {
+ NSObject* obj = [store objectForKey:NAMES_imageType];
+ if ([obj isKindOfClass:SDLImageType.class]) {
+ return (SDLImageType*)obj;
+ } else {
+ return [SDLImageType valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLImageField.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLImageField.h
new file mode 100644
index 000000000..dd01ad6ec
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLImageField.h
@@ -0,0 +1,20 @@
+// SDLImageField.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLImageFieldName.h"
+#import "SDLImageResolution.h"
+
+@interface SDLImageField : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLImageFieldName* name;
+@property(strong) NSMutableArray* imageTypeSupported;
+@property(strong) SDLImageResolution* imageResolution;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLImageField.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLImageField.m
new file mode 100644
index 000000000..8109c9bd8
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLImageField.m
@@ -0,0 +1,77 @@
+// SDLImageField.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLImageField.h"
+
+#import "SDLNames.h"
+#import "SDLFileType.h"
+
+@implementation SDLImageField
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setName:(SDLImageFieldName*) name {
+ if (name != nil) {
+ [store setObject:name forKey:NAMES_name];
+ } else {
+ [store removeObjectForKey:NAMES_name];
+ }
+}
+
+-(SDLImageFieldName*) name {
+ NSObject* obj = [store objectForKey:NAMES_name];
+ if ([obj isKindOfClass:SDLImageFieldName.class]) {
+ return (SDLImageFieldName*)obj;
+ } else {
+ return [SDLImageFieldName valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setImageTypeSupported:(NSMutableArray*) imageTypeSupported {
+ if (imageTypeSupported != nil) {
+ [store setObject:imageTypeSupported forKey:NAMES_imageTypeSupported];
+ } else {
+ [store removeObjectForKey:NAMES_imageTypeSupported];
+ }
+}
+
+-(NSMutableArray*) imageTypeSupported {
+ NSMutableArray* array = [store objectForKey:NAMES_imageTypeSupported];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLFileType.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSString* enumString in array) {
+ [newList addObject:[SDLFileType valueOf:enumString]];
+ }
+ return newList;
+ }
+}
+
+-(void) setImageResolution:(SDLImageResolution*) imageResolution {
+ if (imageResolution != nil) {
+ [store setObject:imageResolution forKey:NAMES_imageResolution];
+ } else {
+ [store removeObjectForKey:NAMES_imageResolution];
+ }
+}
+
+-(SDLImageResolution*) imageResolution {
+ NSObject* obj = [store objectForKey:NAMES_imageResolution];
+ if ([obj isKindOfClass:SDLImageResolution.class]) {
+ return (SDLImageResolution*)obj;
+ } else {
+ return [[SDLImageResolution alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLImageFieldName.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLImageFieldName.h
new file mode 100644
index 000000000..782aef258
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLImageFieldName.h
@@ -0,0 +1,25 @@
+// SDLImageFieldName.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLImageFieldName : SDLEnum {}
+
++(SDLImageFieldName*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLImageFieldName*) softButtonImage;
++(SDLImageFieldName*) choiceImage;
++(SDLImageFieldName*) choiceSecondaryImage;
++(SDLImageFieldName*) vrHelpItem;
++(SDLImageFieldName*) turnIcon;
++(SDLImageFieldName*) menuIcon;
++(SDLImageFieldName*) cmdIcon;
++(SDLImageFieldName*) appIcon;
++(SDLImageFieldName*) graphic;
++(SDLImageFieldName*) showConstantTBTIcon;
++(SDLImageFieldName*) showConstantTBTNextTurnIcon;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLImageFieldName.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLImageFieldName.m
new file mode 100644
index 000000000..f7b0a3075
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLImageFieldName.m
@@ -0,0 +1,128 @@
+// SDLImageFieldName.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLImageFieldName.h"
+
+SDLImageFieldName* SDLImageFieldName_softButtonImage = nil;
+SDLImageFieldName* SDLImageFieldName_choiceImage = nil;
+SDLImageFieldName* SDLImageFieldName_choiceSecondaryImage = nil;
+SDLImageFieldName* SDLImageFieldName_vrHelpItem = nil;
+SDLImageFieldName* SDLImageFieldName_turnIcon = nil;
+SDLImageFieldName* SDLImageFieldName_menuIcon = nil;
+SDLImageFieldName* SDLImageFieldName_cmdIcon = nil;
+SDLImageFieldName* SDLImageFieldName_appIcon = nil;
+SDLImageFieldName* SDLImageFieldName_graphic = nil;
+SDLImageFieldName* SDLImageFieldName_showConstantTBTIcon = nil;
+SDLImageFieldName* SDLImageFieldName_showConstantTBTNextTurnIcon = nil;
+
+NSMutableArray* SDLImageFieldName_values = nil;
+
+@implementation SDLImageFieldName
+
++(SDLImageFieldName*) valueOf:(NSString*) value {
+ for (SDLImageFieldName* item in SDLImageFieldName.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLImageFieldName_values == nil) {
+ SDLImageFieldName_values = [[NSMutableArray alloc] initWithObjects:
+ SDLImageFieldName.softButtonImage,
+ SDLImageFieldName.choiceImage,
+ SDLImageFieldName.choiceSecondaryImage,
+ SDLImageFieldName.vrHelpItem,
+ SDLImageFieldName.turnIcon,
+ SDLImageFieldName.menuIcon,
+ SDLImageFieldName.cmdIcon,
+ SDLImageFieldName.appIcon,
+ SDLImageFieldName.graphic,
+ SDLImageFieldName.showConstantTBTIcon,
+ SDLImageFieldName.showConstantTBTNextTurnIcon,
+ nil];
+ }
+ return SDLImageFieldName_values;
+}
+
++(SDLImageFieldName*) softButtonImage {
+ if (SDLImageFieldName_softButtonImage == nil) {
+ SDLImageFieldName_softButtonImage = [[SDLImageFieldName alloc] initWithValue:@"softButtonImage"];
+ }
+ return SDLImageFieldName_softButtonImage;
+}
+
++(SDLImageFieldName*) choiceImage {
+ if (SDLImageFieldName_choiceImage == nil) {
+ SDLImageFieldName_choiceImage = [[SDLImageFieldName alloc] initWithValue:@"choiceImage"];
+ }
+ return SDLImageFieldName_choiceImage;
+}
+
++(SDLImageFieldName*) choiceSecondaryImage {
+ if (SDLImageFieldName_choiceSecondaryImage == nil) {
+ SDLImageFieldName_choiceSecondaryImage = [[SDLImageFieldName alloc] initWithValue:@"choiceSecondaryImage"];
+ }
+ return SDLImageFieldName_choiceSecondaryImage;
+}
+
++(SDLImageFieldName*) vrHelpItem {
+ if (SDLImageFieldName_vrHelpItem == nil) {
+ SDLImageFieldName_vrHelpItem = [[SDLImageFieldName alloc] initWithValue:@"vrHelpItem"];
+ }
+ return SDLImageFieldName_vrHelpItem;
+}
+
++(SDLImageFieldName*) turnIcon {
+ if (SDLImageFieldName_turnIcon == nil) {
+ SDLImageFieldName_turnIcon = [[SDLImageFieldName alloc] initWithValue:@"turnIcon"];
+ }
+ return SDLImageFieldName_turnIcon;
+}
+
++(SDLImageFieldName*) menuIcon {
+ if (SDLImageFieldName_menuIcon == nil) {
+ SDLImageFieldName_menuIcon = [[SDLImageFieldName alloc] initWithValue:@"menuIcon"];
+ }
+ return SDLImageFieldName_menuIcon;
+}
+
++(SDLImageFieldName*) cmdIcon {
+ if (SDLImageFieldName_cmdIcon == nil) {
+ SDLImageFieldName_cmdIcon = [[SDLImageFieldName alloc] initWithValue:@"cmdIcon"];
+ }
+ return SDLImageFieldName_cmdIcon;
+}
+
++(SDLImageFieldName*) appIcon {
+ if (SDLImageFieldName_appIcon == nil) {
+ SDLImageFieldName_appIcon = [[SDLImageFieldName alloc] initWithValue:@"appIcon"];
+ }
+ return SDLImageFieldName_appIcon;
+}
+
++(SDLImageFieldName*) graphic {
+ if (SDLImageFieldName_graphic == nil) {
+ SDLImageFieldName_graphic = [[SDLImageFieldName alloc] initWithValue:@"graphic"];
+ }
+ return SDLImageFieldName_graphic;
+}
+
++(SDLImageFieldName*) showConstantTBTIcon {
+ if (SDLImageFieldName_showConstantTBTIcon == nil) {
+ SDLImageFieldName_showConstantTBTIcon = [[SDLImageFieldName alloc] initWithValue:@"showConstantTBTIcon"];
+ }
+ return SDLImageFieldName_showConstantTBTIcon;
+}
+
++(SDLImageFieldName*) showConstantTBTNextTurnIcon {
+ if (SDLImageFieldName_showConstantTBTNextTurnIcon == nil) {
+ SDLImageFieldName_showConstantTBTNextTurnIcon = [[SDLImageFieldName alloc] initWithValue:@"showConstantTBTNextTurnIcon"];
+ }
+ return SDLImageFieldName_showConstantTBTNextTurnIcon;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLImageResolution.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLImageResolution.h
new file mode 100644
index 000000000..7dd1d70a4
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLImageResolution.h
@@ -0,0 +1,16 @@
+// SDLImageResolution.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+@interface SDLImageResolution : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* resolutionWidth;
+@property(strong) NSNumber* resolutionHeight;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLImageResolution.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLImageResolution.m
new file mode 100644
index 000000000..de6857a4d
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLImageResolution.m
@@ -0,0 +1,45 @@
+// SDLImageResolution.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLImageResolution.h"
+
+#import "SDLNames.h"
+
+@implementation SDLImageResolution
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setResolutionWidth:(NSNumber*) resolutionWidth {
+ if (resolutionWidth != nil) {
+ [store setObject:resolutionWidth forKey:NAMES_resolutionWidth];
+ } else {
+ [store removeObjectForKey:NAMES_resolutionWidth];
+ }
+}
+
+-(NSNumber*) resolutionWidth {
+ return [store objectForKey:NAMES_resolutionWidth];
+}
+
+-(void) setResolutionHeight:(NSNumber*) resolutionHeight {
+ if (resolutionHeight != nil) {
+ [store setObject:resolutionHeight forKey:NAMES_resolutionHeight];
+ } else {
+ [store removeObjectForKey:NAMES_resolutionHeight];
+ }
+}
+
+-(NSNumber*) resolutionHeight {
+ return [store objectForKey:NAMES_resolutionHeight];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLImageType.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLImageType.h
new file mode 100644
index 000000000..c0781cd1a
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLImageType.h
@@ -0,0 +1,16 @@
+// SDLImageType.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLImageType : SDLEnum {}
+
++(SDLImageType*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLImageType*) STATIC;
++(SDLImageType*) DYNAMIC;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLImageType.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLImageType.m
new file mode 100644
index 000000000..71c95032c
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLImageType.m
@@ -0,0 +1,47 @@
+// SDLImageType.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLImageType.h"
+
+SDLImageType* SDLImageType_STATIC = nil;
+SDLImageType* SDLImageType_DYNAMIC = nil;
+
+NSMutableArray* SDLImageType_values = nil;
+
+@implementation SDLImageType
+
++(SDLImageType*) valueOf:(NSString*) value {
+ for (SDLImageType* item in SDLImageType.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLImageType_values == nil) {
+ SDLImageType_values = [[NSMutableArray alloc] initWithObjects:
+ SDLImageType.STATIC,
+ SDLImageType.DYNAMIC,
+ nil];
+ }
+ return SDLImageType_values;
+}
+
++(SDLImageType*) STATIC {
+ if (SDLImageType_STATIC == nil) {
+ SDLImageType_STATIC = [[SDLImageType alloc] initWithValue:@"STATIC"];
+ }
+ return SDLImageType_STATIC;
+}
+
++(SDLImageType*) DYNAMIC {
+ if (SDLImageType_DYNAMIC == nil) {
+ SDLImageType_DYNAMIC = [[SDLImageType alloc] initWithValue:@"DYNAMIC"];
+ }
+ return SDLImageType_DYNAMIC;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLInteractionMode.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLInteractionMode.h
new file mode 100644
index 000000000..23dda5c7d
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLInteractionMode.h
@@ -0,0 +1,17 @@
+// SDLInteractionMode.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLInteractionMode : SDLEnum {}
+
++(SDLInteractionMode*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLInteractionMode*) MANUAL_ONLY;
++(SDLInteractionMode*) VR_ONLY;
++(SDLInteractionMode*) BOTH;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLInteractionMode.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLInteractionMode.m
new file mode 100644
index 000000000..86244e8ae
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLInteractionMode.m
@@ -0,0 +1,56 @@
+// SDLInteractionMode.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLInteractionMode.h"
+
+SDLInteractionMode* SDLInteractionMode_MANUAL_ONLY = nil;
+SDLInteractionMode* SDLInteractionMode_VR_ONLY = nil;
+SDLInteractionMode* SDLInteractionMode_BOTH = nil;
+
+NSMutableArray* SDLInteractionMode_values = nil;
+
+@implementation SDLInteractionMode
+
++(SDLInteractionMode*) valueOf:(NSString*) value {
+ for (SDLInteractionMode* item in SDLInteractionMode.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLInteractionMode_values == nil) {
+ SDLInteractionMode_values = [[NSMutableArray alloc] initWithObjects:
+ SDLInteractionMode.MANUAL_ONLY,
+ SDLInteractionMode.VR_ONLY,
+ SDLInteractionMode.BOTH,
+ nil];
+ }
+ return SDLInteractionMode_values;
+}
+
++(SDLInteractionMode*) MANUAL_ONLY {
+ if (SDLInteractionMode_MANUAL_ONLY == nil) {
+ SDLInteractionMode_MANUAL_ONLY = [[SDLInteractionMode alloc] initWithValue:@"MANUAL_ONLY"];
+ }
+ return SDLInteractionMode_MANUAL_ONLY;
+}
+
++(SDLInteractionMode*) VR_ONLY {
+ if (SDLInteractionMode_VR_ONLY == nil) {
+ SDLInteractionMode_VR_ONLY = [[SDLInteractionMode alloc] initWithValue:@"VR_ONLY"];
+ }
+ return SDLInteractionMode_VR_ONLY;
+}
+
++(SDLInteractionMode*) BOTH {
+ if (SDLInteractionMode_BOTH == nil) {
+ SDLInteractionMode_BOTH = [[SDLInteractionMode alloc] initWithValue:@"BOTH"];
+ }
+ return SDLInteractionMode_BOTH;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLInterfaceProtocol.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLInterfaceProtocol.h
new file mode 100644
index 000000000..41e243590
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLInterfaceProtocol.h
@@ -0,0 +1,22 @@
+// SDLProtocol.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLProtocolListener.h"
+#import "SDLProtocolMessage.h"
+#import "SDLRPCRequest.h"
+#import "SDLTransport.h"
+#import "SDLTransportDelegate.h"
+
+@protocol SDLInterfaceProtocol<SDLTransportDelegate>
+
+@property (weak) id<SDLProtocolListener> protocolDelegate;
+@property (strong) id<SDLTransport> transport;
+
+- (void)handleBytesFromTransport:(NSData *)receivedData;
+- (void)sendStartSessionWithType:(SDLServiceType)sessionType;
+- (void)sendEndSessionWithType:(SDLServiceType)sessionType sessionID:(Byte)sessionID;
+- (void)sendRPCRequest:(SDLRPCRequest *)rpcRequest;
+
+@end \ No newline at end of file
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLJingle.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLJingle.h
new file mode 100644
index 000000000..3dedafa80
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLJingle.h
@@ -0,0 +1,15 @@
+// SDLJingle.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+@import Foundation;
+
+@interface SDLJingle : NSObject {}
+
++(NSString*) NEGATIVE_JINGLE;
++(NSString*) POSITIVE_JINGLE;
++(NSString*) LISTEN_JINGLE;
++(NSString*) INITIAL_JINGLE;
++(NSString*) HELP_JINGLE;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLJingle.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLJingle.m
new file mode 100644
index 000000000..9b9355092
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLJingle.m
@@ -0,0 +1,15 @@
+// SDLJingle.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLJingle.h"
+
+@implementation SDLJingle
+
++(NSString*) NEGATIVE_JINGLE { return @"NEGATIVE_JINGLE"; }
++(NSString*) POSITIVE_JINGLE { return @"POSITIVE_JINGLE"; }
++(NSString*) LISTEN_JINGLE { return @"LISTEN_JINGLE"; }
++(NSString*) INITIAL_JINGLE { return @"INITIAL_JINGLE"; }
++(NSString*) HELP_JINGLE { return @"HELP_JINGLE"; }
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLJsonDecoder.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLJsonDecoder.h
new file mode 100644
index 000000000..b2245c7ed
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLJsonDecoder.h
@@ -0,0 +1,13 @@
+// SDLJsonDecoder.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+@import Foundation;
+
+#import "SDLDecoder.h"
+
+@interface SDLJsonDecoder : NSObject<SDLDecoder> {}
+
++(NSObject<SDLDecoder>*) instance;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLJsonDecoder.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLJsonDecoder.m
new file mode 100644
index 000000000..4d4b3218d
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLJsonDecoder.m
@@ -0,0 +1,27 @@
+// SDLJsonDecoder.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLJsonDecoder.h"
+
+#import "SDLNames.h"
+
+@implementation SDLJsonDecoder
+
+static NSObject<SDLDecoder>* jsonDecoderInstance;
+
++(NSObject<SDLDecoder>*) instance {
+ if (jsonDecoderInstance == nil) {
+ jsonDecoderInstance = [[SDLJsonDecoder alloc] init];
+ }
+ return jsonDecoderInstance;
+}
+
+-(NSDictionary*) decode:(NSData*) msgBytes{
+ NSError* error;
+ NSDictionary* jsonObject = [NSJSONSerialization JSONObjectWithData:msgBytes options:kNilOptions error:&error];
+
+ return jsonObject;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLJsonEncoder.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLJsonEncoder.h
new file mode 100644
index 000000000..a258ad360
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLJsonEncoder.h
@@ -0,0 +1,13 @@
+// SDLJsonEncoder.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+@import Foundation;
+
+#import "SDLEncoder.h"
+
+@interface SDLJsonEncoder : NSObject<SDLEncoder> {}
+
++(NSObject<SDLEncoder>*) instance;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLJsonEncoder.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLJsonEncoder.m
new file mode 100644
index 000000000..ca7068972
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLJsonEncoder.m
@@ -0,0 +1,27 @@
+// SDLJsonEncoder.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLJsonEncoder.h"
+
+#import "SDLNames.h"
+
+@implementation SDLJsonEncoder
+
+static NSObject<SDLEncoder>* jsonEncoderInstance;
+
++(NSObject<SDLEncoder>*) instance {
+ if (jsonEncoderInstance == nil) {
+ jsonEncoderInstance = [[SDLJsonEncoder alloc] init];
+ }
+ return jsonEncoderInstance;
+}
+
+-(NSData*) encodeDictionary:(NSDictionary*) dict {
+ NSError* error;
+ NSData* jsonData = [NSJSONSerialization dataWithJSONObject:dict options:kNilOptions error:&error];
+
+ return jsonData;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLKeyboardEvent.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLKeyboardEvent.h
new file mode 100644
index 000000000..37102d170
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLKeyboardEvent.h
@@ -0,0 +1,18 @@
+// SDLKeyboardEvent.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLKeyboardEvent : SDLEnum {}
+
++(SDLKeyboardEvent*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLKeyboardEvent*) KEYPRESS;
++(SDLKeyboardEvent*) ENTRY_SUBMITTED;
++(SDLKeyboardEvent*) ENTRY_CANCELLED;
++(SDLKeyboardEvent*) ENTRY_ABORTED;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLKeyboardEvent.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLKeyboardEvent.m
new file mode 100644
index 000000000..72a72011a
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLKeyboardEvent.m
@@ -0,0 +1,65 @@
+// SDLKeyboardEvent.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLKeyboardEvent.h"
+
+SDLKeyboardEvent* SDLKeyboardEvent_KEYPRESS = nil;
+SDLKeyboardEvent* SDLKeyboardEvent_ENTRY_SUBMITTED = nil;
+SDLKeyboardEvent* SDLKeyboardEvent_ENTRY_CANCELLED = nil;
+SDLKeyboardEvent* SDLKeyboardEvent_ENTRY_ABORTED = nil;
+
+NSMutableArray* SDLKeyboardEvent_values = nil;
+
+@implementation SDLKeyboardEvent
+
++(SDLKeyboardEvent*) valueOf:(NSString*) value {
+ for (SDLKeyboardEvent* item in SDLKeyboardEvent.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLKeyboardEvent_values == nil) {
+ SDLKeyboardEvent_values = [[NSMutableArray alloc] initWithObjects:
+ SDLKeyboardEvent.KEYPRESS,
+ SDLKeyboardEvent.ENTRY_SUBMITTED,
+ SDLKeyboardEvent.ENTRY_CANCELLED,
+ SDLKeyboardEvent.ENTRY_ABORTED,
+ nil];
+ }
+ return SDLKeyboardEvent_values;
+}
+
++(SDLKeyboardEvent*) KEYPRESS {
+ if (SDLKeyboardEvent_KEYPRESS == nil) {
+ SDLKeyboardEvent_KEYPRESS = [[SDLKeyboardEvent alloc] initWithValue:@"KEYPRESS"];
+ }
+ return SDLKeyboardEvent_KEYPRESS;
+}
+
++(SDLKeyboardEvent*) ENTRY_SUBMITTED {
+ if (SDLKeyboardEvent_ENTRY_SUBMITTED == nil) {
+ SDLKeyboardEvent_ENTRY_SUBMITTED = [[SDLKeyboardEvent alloc] initWithValue:@"ENTRY_SUBMITTED"];
+ }
+ return SDLKeyboardEvent_ENTRY_SUBMITTED;
+}
+
++(SDLKeyboardEvent*) ENTRY_CANCELLED {
+ if (SDLKeyboardEvent_ENTRY_CANCELLED == nil) {
+ SDLKeyboardEvent_ENTRY_CANCELLED = [[SDLKeyboardEvent alloc] initWithValue:@"ENTRY_CANCELLED"];
+ }
+ return SDLKeyboardEvent_ENTRY_CANCELLED;
+}
+
++(SDLKeyboardEvent*) ENTRY_ABORTED {
+ if (SDLKeyboardEvent_ENTRY_ABORTED == nil) {
+ SDLKeyboardEvent_ENTRY_ABORTED = [[SDLKeyboardEvent alloc] initWithValue:@"ENTRY_ABORTED"];
+ }
+ return SDLKeyboardEvent_ENTRY_ABORTED;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLKeyboardLayout.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLKeyboardLayout.h
new file mode 100644
index 000000000..d1e56198b
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLKeyboardLayout.h
@@ -0,0 +1,17 @@
+// SDLKeyboardLayout.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLKeyboardLayout : SDLEnum {}
+
++(SDLKeyboardLayout*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLKeyboardLayout*) QWERTY;
++(SDLKeyboardLayout*) QWERTZ;
++(SDLKeyboardLayout*) AZERTY;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLKeyboardLayout.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLKeyboardLayout.m
new file mode 100644
index 000000000..0d27e8566
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLKeyboardLayout.m
@@ -0,0 +1,56 @@
+// SDLKeyboardLayout.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLKeyboardLayout.h"
+
+SDLKeyboardLayout* SDLKeyboardLayout_QWERTY = nil;
+SDLKeyboardLayout* SDLKeyboardLayout_QWERTZ = nil;
+SDLKeyboardLayout* SDLKeyboardLayout_AZERTY = nil;
+
+NSMutableArray* SDLKeyboardLayout_values = nil;
+
+@implementation SDLKeyboardLayout
+
++(SDLKeyboardLayout*) valueOf:(NSString*) value {
+ for (SDLKeyboardLayout* item in SDLKeyboardLayout.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLKeyboardLayout_values == nil) {
+ SDLKeyboardLayout_values = [[NSMutableArray alloc] initWithObjects:
+ SDLKeyboardLayout.QWERTY,
+ SDLKeyboardLayout.QWERTZ,
+ SDLKeyboardLayout.AZERTY,
+ nil];
+ }
+ return SDLKeyboardLayout_values;
+}
+
++(SDLKeyboardLayout*) QWERTY {
+ if (SDLKeyboardLayout_QWERTY == nil) {
+ SDLKeyboardLayout_QWERTY = [[SDLKeyboardLayout alloc] initWithValue:@"QWERTY"];
+ }
+ return SDLKeyboardLayout_QWERTY;
+}
+
++(SDLKeyboardLayout*) QWERTZ {
+ if (SDLKeyboardLayout_QWERTZ == nil) {
+ SDLKeyboardLayout_QWERTZ = [[SDLKeyboardLayout alloc] initWithValue:@"QWERTZ"];
+ }
+ return SDLKeyboardLayout_QWERTZ;
+}
+
++(SDLKeyboardLayout*) AZERTY {
+ if (SDLKeyboardLayout_AZERTY == nil) {
+ SDLKeyboardLayout_AZERTY = [[SDLKeyboardLayout alloc] initWithValue:@"AZERTY"];
+ }
+ return SDLKeyboardLayout_AZERTY;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLKeyboardProperties.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLKeyboardProperties.h
new file mode 100644
index 000000000..e72ec301f
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLKeyboardProperties.h
@@ -0,0 +1,23 @@
+// SDLKeyboardProperties.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLLanguage.h"
+#import "SDLKeyboardLayout.h"
+#import "SDLKeypressMode.h"
+
+@interface SDLKeyboardProperties : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLLanguage* language;
+@property(strong) SDLKeyboardLayout* keyboardLayout;
+@property(strong) SDLKeypressMode* keypressMode;
+@property(strong) NSMutableArray* limitedCharacterList;
+@property(strong) NSString* autoCompleteText;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLKeyboardProperties.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLKeyboardProperties.m
new file mode 100644
index 000000000..8dd8e57df
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLKeyboardProperties.m
@@ -0,0 +1,96 @@
+// SDLKeyboardProperties.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLKeyboardProperties.h"
+
+#import "SDLNames.h"
+
+@implementation SDLKeyboardProperties
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setLanguage:(SDLLanguage*) language {
+ if (language != nil) {
+ [store setObject:language forKey:NAMES_language];
+ } else {
+ [store removeObjectForKey:NAMES_language];
+ }
+}
+
+-(SDLLanguage*) language {
+ NSObject* obj = [store objectForKey:NAMES_language];
+ if ([obj isKindOfClass:SDLLanguage.class]) {
+ return (SDLLanguage*)obj;
+ } else {
+ return [SDLLanguage valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setKeyboardLayout:(SDLKeyboardLayout*) keyboardLayout {
+ if (keyboardLayout != nil) {
+ [store setObject:keyboardLayout forKey:NAMES_keyboardLayout];
+ } else {
+ [store removeObjectForKey:NAMES_keyboardLayout];
+ }
+}
+
+-(SDLKeyboardLayout*) keyboardLayout {
+ NSObject* obj = [store objectForKey:NAMES_keyboardLayout];
+ if ([obj isKindOfClass:SDLKeyboardLayout.class]) {
+ return (SDLKeyboardLayout*)obj;
+ } else {
+ return [SDLKeyboardLayout valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setKeypressMode:(SDLKeypressMode*) keypressMode {
+ if (keypressMode != nil) {
+ [store setObject:keypressMode forKey:NAMES_keypressMode];
+ } else {
+ [store removeObjectForKey:NAMES_keypressMode];
+ }
+}
+
+-(SDLKeypressMode*) keypressMode {
+ NSObject* obj = [store objectForKey:NAMES_keypressMode];
+ if ([obj isKindOfClass:SDLKeypressMode.class]) {
+ return (SDLKeypressMode*)obj;
+ } else {
+ return [SDLKeypressMode valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setLimitedCharacterList:(NSMutableArray*) limitedCharacterList {
+ if (limitedCharacterList != nil) {
+ [store setObject:limitedCharacterList forKey:NAMES_limitedCharacterList];
+ } else {
+ [store removeObjectForKey:NAMES_limitedCharacterList];
+ }
+}
+
+-(NSMutableArray*) limitedCharacterList {
+ return [store objectForKey:NAMES_limitedCharacterList];
+}
+
+-(void) setAutoCompleteText:(NSString*) autoCompleteText {
+ if (autoCompleteText != nil) {
+ [store setObject:autoCompleteText forKey:NAMES_autoCompleteText];
+ } else {
+ [store removeObjectForKey:NAMES_autoCompleteText];
+ }
+}
+
+-(NSString*) autoCompleteText {
+ return [store objectForKey:NAMES_autoCompleteText];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLKeypressMode.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLKeypressMode.h
new file mode 100644
index 000000000..905f049dd
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLKeypressMode.h
@@ -0,0 +1,17 @@
+// SDLKeypressMode.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLKeypressMode : SDLEnum {}
+
++(SDLKeypressMode*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLKeypressMode*) SINGLE_KEYPRESS;
++(SDLKeypressMode*) QUEUE_KEYPRESSES;
++(SDLKeypressMode*) RESEND_CURRENT_ENTRY;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLKeypressMode.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLKeypressMode.m
new file mode 100644
index 000000000..d3f0faebf
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLKeypressMode.m
@@ -0,0 +1,56 @@
+// SDLKeypressMode.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLKeypressMode.h"
+
+SDLKeypressMode* SDLKeypressMode_SINGLE_KEYPRESS = nil;
+SDLKeypressMode* SDLKeypressMode_QUEUE_KEYPRESSES = nil;
+SDLKeypressMode* SDLKeypressMode_RESEND_CURRENT_ENTRY = nil;
+
+NSMutableArray* SDLKeypressMode_values = nil;
+
+@implementation SDLKeypressMode
+
++(SDLKeypressMode*) valueOf:(NSString*) value {
+ for (SDLKeypressMode* item in SDLKeypressMode.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLKeypressMode_values == nil) {
+ SDLKeypressMode_values = [[NSMutableArray alloc] initWithObjects:
+ SDLKeypressMode.SINGLE_KEYPRESS,
+ SDLKeypressMode.QUEUE_KEYPRESSES,
+ SDLKeypressMode.RESEND_CURRENT_ENTRY,
+ nil];
+ }
+ return SDLKeypressMode_values;
+}
+
++(SDLKeypressMode*) SINGLE_KEYPRESS {
+ if (SDLKeypressMode_SINGLE_KEYPRESS == nil) {
+ SDLKeypressMode_SINGLE_KEYPRESS = [[SDLKeypressMode alloc] initWithValue:@"SINGLE_KEYPRESS"];
+ }
+ return SDLKeypressMode_SINGLE_KEYPRESS;
+}
+
++(SDLKeypressMode*) QUEUE_KEYPRESSES {
+ if (SDLKeypressMode_QUEUE_KEYPRESSES == nil) {
+ SDLKeypressMode_QUEUE_KEYPRESSES = [[SDLKeypressMode alloc] initWithValue:@"QUEUE_KEYPRESSES"];
+ }
+ return SDLKeypressMode_QUEUE_KEYPRESSES;
+}
+
++(SDLKeypressMode*) RESEND_CURRENT_ENTRY {
+ if (SDLKeypressMode_RESEND_CURRENT_ENTRY == nil) {
+ SDLKeypressMode_RESEND_CURRENT_ENTRY = [[SDLKeypressMode alloc] initWithValue:@"RESEND_CURRENT_ENTRY"];
+ }
+ return SDLKeypressMode_RESEND_CURRENT_ENTRY;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLLanguage.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLLanguage.h
new file mode 100644
index 000000000..f8a446ff4
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLLanguage.h
@@ -0,0 +1,38 @@
+// SDLLanguage.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLLanguage : SDLEnum {}
+
++(SDLLanguage*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLLanguage*) EN_US;
++(SDLLanguage*) ES_MX;
++(SDLLanguage*) FR_CA;
++(SDLLanguage*) DE_DE;
++(SDLLanguage*) ES_ES;
++(SDLLanguage*) EN_GB;
++(SDLLanguage*) RU_RU;
++(SDLLanguage*) TR_TR;
++(SDLLanguage*) PL_PL;
++(SDLLanguage*) FR_FR;
++(SDLLanguage*) IT_IT;
++(SDLLanguage*) SV_SE;
++(SDLLanguage*) PT_PT;
++(SDLLanguage*) NL_NL;
++(SDLLanguage*) EN_AU;
++(SDLLanguage*) ZH_CN;
++(SDLLanguage*) ZH_TW;
++(SDLLanguage*) JA_JP;
++(SDLLanguage*) AR_SA;
++(SDLLanguage*) KO_KR;
++(SDLLanguage*) PT_BR;
++(SDLLanguage*) CS_CZ;
++(SDLLanguage*) DA_DK;
++(SDLLanguage*) NO_NO;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLLanguage.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLLanguage.m
new file mode 100644
index 000000000..f17baa49c
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLLanguage.m
@@ -0,0 +1,245 @@
+// SDLLanguage.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLLanguage.h"
+
+SDLLanguage* SDLLanguage_EN_US = nil;
+SDLLanguage* SDLLanguage_ES_MX = nil;
+SDLLanguage* SDLLanguage_FR_CA = nil;
+SDLLanguage* SDLLanguage_DE_DE = nil;
+SDLLanguage* SDLLanguage_ES_ES = nil;
+SDLLanguage* SDLLanguage_EN_GB = nil;
+SDLLanguage* SDLLanguage_RU_RU = nil;
+SDLLanguage* SDLLanguage_TR_TR = nil;
+SDLLanguage* SDLLanguage_PL_PL = nil;
+SDLLanguage* SDLLanguage_FR_FR = nil;
+SDLLanguage* SDLLanguage_IT_IT = nil;
+SDLLanguage* SDLLanguage_SV_SE = nil;
+SDLLanguage* SDLLanguage_PT_PT = nil;
+SDLLanguage* SDLLanguage_NL_NL = nil;
+SDLLanguage* SDLLanguage_EN_AU = nil;
+SDLLanguage* SDLLanguage_ZH_CN = nil;
+SDLLanguage* SDLLanguage_ZH_TW = nil;
+SDLLanguage* SDLLanguage_JA_JP = nil;
+SDLLanguage* SDLLanguage_AR_SA = nil;
+SDLLanguage* SDLLanguage_KO_KR = nil;
+SDLLanguage* SDLLanguage_PT_BR = nil;
+SDLLanguage* SDLLanguage_CS_CZ = nil;
+SDLLanguage* SDLLanguage_DA_DK = nil;
+SDLLanguage* SDLLanguage_NO_NO = nil;
+
+NSMutableArray* SDLLanguage_values = nil;
+
+@implementation SDLLanguage
+
++(SDLLanguage*) valueOf:(NSString*) value {
+ for (SDLLanguage* item in SDLLanguage.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLLanguage_values == nil) {
+ SDLLanguage_values = [[NSMutableArray alloc] initWithObjects:
+ SDLLanguage.EN_US,
+ SDLLanguage.ES_MX,
+ SDLLanguage.FR_CA,
+ SDLLanguage.DE_DE,
+ SDLLanguage.ES_ES,
+ SDLLanguage.EN_GB,
+ SDLLanguage.RU_RU,
+ SDLLanguage.TR_TR,
+ SDLLanguage.PL_PL,
+ SDLLanguage.FR_FR,
+ SDLLanguage.IT_IT,
+ SDLLanguage.SV_SE,
+ SDLLanguage.PT_PT,
+ SDLLanguage.NL_NL,
+ SDLLanguage.EN_AU,
+ SDLLanguage.ZH_CN,
+ SDLLanguage.ZH_TW,
+ SDLLanguage.JA_JP,
+ SDLLanguage.AR_SA,
+ SDLLanguage.KO_KR,
+ SDLLanguage.PT_BR,
+ SDLLanguage.CS_CZ,
+ SDLLanguage.DA_DK,
+ SDLLanguage.NO_NO,
+ nil];
+ }
+ return SDLLanguage_values;
+}
+
++(SDLLanguage*) EN_US {
+ if (SDLLanguage_EN_US == nil) {
+ SDLLanguage_EN_US = [[SDLLanguage alloc] initWithValue:@"EN-US"];
+ }
+ return SDLLanguage_EN_US;
+}
+
++(SDLLanguage*) ES_MX {
+ if (SDLLanguage_ES_MX == nil) {
+ SDLLanguage_ES_MX = [[SDLLanguage alloc] initWithValue:@"ES-MX"];
+ }
+ return SDLLanguage_ES_MX;
+}
+
++(SDLLanguage*) FR_CA {
+ if (SDLLanguage_FR_CA == nil) {
+ SDLLanguage_FR_CA = [[SDLLanguage alloc] initWithValue:@"FR-CA"];
+ }
+ return SDLLanguage_FR_CA;
+}
+
++(SDLLanguage*) DE_DE {
+ if (SDLLanguage_DE_DE == nil) {
+ SDLLanguage_DE_DE = [[SDLLanguage alloc] initWithValue:@"DE-DE"];
+ }
+ return SDLLanguage_DE_DE;
+}
+
++(SDLLanguage*) ES_ES {
+ if (SDLLanguage_ES_ES == nil) {
+ SDLLanguage_ES_ES = [[SDLLanguage alloc] initWithValue:@"ES-ES"];
+ }
+ return SDLLanguage_ES_ES;
+}
+
++(SDLLanguage*) EN_GB {
+ if (SDLLanguage_EN_GB == nil) {
+ SDLLanguage_EN_GB = [[SDLLanguage alloc] initWithValue:@"EN-GB"];
+ }
+ return SDLLanguage_EN_GB;
+}
+
++(SDLLanguage*) RU_RU {
+ if (SDLLanguage_RU_RU == nil) {
+ SDLLanguage_RU_RU = [[SDLLanguage alloc] initWithValue:@"RU-RU"];
+ }
+ return SDLLanguage_RU_RU;
+}
+
++(SDLLanguage*) TR_TR {
+ if (SDLLanguage_TR_TR == nil) {
+ SDLLanguage_TR_TR = [[SDLLanguage alloc] initWithValue:@"TR-TR"];
+ }
+ return SDLLanguage_TR_TR;
+}
+
++(SDLLanguage*) PL_PL {
+ if (SDLLanguage_PL_PL == nil) {
+ SDLLanguage_PL_PL = [[SDLLanguage alloc] initWithValue:@"PL-PL"];
+ }
+ return SDLLanguage_PL_PL;
+}
+
++(SDLLanguage*) FR_FR {
+ if (SDLLanguage_FR_FR == nil) {
+ SDLLanguage_FR_FR = [[SDLLanguage alloc] initWithValue:@"FR-FR"];
+ }
+ return SDLLanguage_FR_FR;
+}
+
++(SDLLanguage*) IT_IT {
+ if (SDLLanguage_IT_IT == nil) {
+ SDLLanguage_IT_IT = [[SDLLanguage alloc] initWithValue:@"IT-IT"];
+ }
+ return SDLLanguage_IT_IT;
+}
+
++(SDLLanguage*) SV_SE {
+ if (SDLLanguage_SV_SE == nil) {
+ SDLLanguage_SV_SE = [[SDLLanguage alloc] initWithValue:@"SV-SE"];
+ }
+ return SDLLanguage_SV_SE;
+}
+
++(SDLLanguage*) PT_PT {
+ if (SDLLanguage_PT_PT == nil) {
+ SDLLanguage_PT_PT = [[SDLLanguage alloc] initWithValue:@"PT-PT"];
+ }
+ return SDLLanguage_PT_PT;
+}
+
++(SDLLanguage*) NL_NL {
+ if (SDLLanguage_NL_NL == nil) {
+ SDLLanguage_NL_NL = [[SDLLanguage alloc] initWithValue:@"NL-NL"];
+ }
+ return SDLLanguage_NL_NL;
+}
+
++(SDLLanguage*) EN_AU {
+ if (SDLLanguage_EN_AU == nil) {
+ SDLLanguage_EN_AU = [[SDLLanguage alloc] initWithValue:@"EN-AU"];
+ }
+ return SDLLanguage_EN_AU;
+}
+
++(SDLLanguage*) ZH_CN {
+ if (SDLLanguage_ZH_CN == nil) {
+ SDLLanguage_ZH_CN = [[SDLLanguage alloc] initWithValue:@"ZH-CN"];
+ }
+ return SDLLanguage_ZH_CN;
+}
+
++(SDLLanguage*) ZH_TW {
+ if (SDLLanguage_ZH_TW == nil) {
+ SDLLanguage_ZH_TW = [[SDLLanguage alloc] initWithValue:@"ZH-TW"];
+ }
+ return SDLLanguage_ZH_TW;
+}
+
++(SDLLanguage*) JA_JP {
+ if (SDLLanguage_JA_JP == nil) {
+ SDLLanguage_JA_JP = [[SDLLanguage alloc] initWithValue:@"JA-JP"];
+ }
+ return SDLLanguage_JA_JP;
+}
+
++(SDLLanguage*) AR_SA {
+ if (SDLLanguage_AR_SA == nil) {
+ SDLLanguage_AR_SA = [[SDLLanguage alloc] initWithValue:@"AR-SA"];
+ }
+ return SDLLanguage_AR_SA;
+}
+
++(SDLLanguage*) KO_KR {
+ if (SDLLanguage_KO_KR == nil) {
+ SDLLanguage_KO_KR = [[SDLLanguage alloc] initWithValue:@"KO-KR"];
+ }
+ return SDLLanguage_KO_KR;
+}
+
++(SDLLanguage*) PT_BR {
+ if (SDLLanguage_PT_BR == nil) {
+ SDLLanguage_PT_BR = [[SDLLanguage alloc] initWithValue:@"PT-BR"];
+ }
+ return SDLLanguage_PT_BR;
+}
+
++(SDLLanguage*) CS_CZ {
+ if (SDLLanguage_CS_CZ == nil) {
+ SDLLanguage_CS_CZ = [[SDLLanguage alloc] initWithValue:@"CS-CZ"];
+ }
+ return SDLLanguage_CS_CZ;
+}
+
++(SDLLanguage*) DA_DK {
+ if (SDLLanguage_DA_DK == nil) {
+ SDLLanguage_DA_DK = [[SDLLanguage alloc] initWithValue:@"DA-DK"];
+ }
+ return SDLLanguage_DA_DK;
+}
+
++(SDLLanguage*) NO_NO {
+ if (SDLLanguage_NO_NO == nil) {
+ SDLLanguage_NO_NO = [[SDLLanguage alloc] initWithValue:@"NO-NO"];
+ }
+ return SDLLanguage_NO_NO;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLLayoutMode.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLLayoutMode.h
new file mode 100644
index 000000000..d5301fffb
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLLayoutMode.h
@@ -0,0 +1,19 @@
+// SDLLayoutMode.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLLayoutMode : SDLEnum {}
+
++(SDLLayoutMode*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLLayoutMode*) ICON_ONLY;
++(SDLLayoutMode*) ICON_WITH_SEARCH;
++(SDLLayoutMode*) LIST_ONLY;
++(SDLLayoutMode*) LIST_WITH_SEARCH;
++(SDLLayoutMode*) KEYBOARD;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLLayoutMode.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLLayoutMode.m
new file mode 100644
index 000000000..c1085775c
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLLayoutMode.m
@@ -0,0 +1,74 @@
+// SDLLayoutMode.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLLayoutMode.h"
+
+SDLLayoutMode* SDLLayoutMode_ICON_ONLY = nil;
+SDLLayoutMode* SDLLayoutMode_ICON_WITH_SEARCH = nil;
+SDLLayoutMode* SDLLayoutMode_LIST_ONLY = nil;
+SDLLayoutMode* SDLLayoutMode_LIST_WITH_SEARCH = nil;
+SDLLayoutMode* SDLLayoutMode_KEYBOARD = nil;
+
+NSMutableArray* SDLLayoutMode_values = nil;
+
+@implementation SDLLayoutMode
+
++(SDLLayoutMode*) valueOf:(NSString*) value {
+ for (SDLLayoutMode* item in SDLLayoutMode.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLLayoutMode_values == nil) {
+ SDLLayoutMode_values = [[NSMutableArray alloc] initWithObjects:
+ SDLLayoutMode.ICON_ONLY,
+ SDLLayoutMode.ICON_WITH_SEARCH,
+ SDLLayoutMode.LIST_ONLY,
+ SDLLayoutMode.LIST_WITH_SEARCH,
+ SDLLayoutMode.KEYBOARD,
+ nil];
+ }
+ return SDLLayoutMode_values;
+}
+
++(SDLLayoutMode*) ICON_ONLY {
+ if (SDLLayoutMode_ICON_ONLY == nil) {
+ SDLLayoutMode_ICON_ONLY = [[SDLLayoutMode alloc] initWithValue:@"ICON_ONLY"];
+ }
+ return SDLLayoutMode_ICON_ONLY;
+}
+
++(SDLLayoutMode*) ICON_WITH_SEARCH {
+ if (SDLLayoutMode_ICON_WITH_SEARCH == nil) {
+ SDLLayoutMode_ICON_WITH_SEARCH = [[SDLLayoutMode alloc] initWithValue:@"ICON_WITH_SEARCH"];
+ }
+ return SDLLayoutMode_ICON_WITH_SEARCH;
+}
+
++(SDLLayoutMode*) LIST_ONLY {
+ if (SDLLayoutMode_LIST_ONLY == nil) {
+ SDLLayoutMode_LIST_ONLY = [[SDLLayoutMode alloc] initWithValue:@"LIST_ONLY"];
+ }
+ return SDLLayoutMode_LIST_ONLY;
+}
+
++(SDLLayoutMode*) LIST_WITH_SEARCH {
+ if (SDLLayoutMode_LIST_WITH_SEARCH == nil) {
+ SDLLayoutMode_LIST_WITH_SEARCH = [[SDLLayoutMode alloc] initWithValue:@"LIST_WITH_SEARCH"];
+ }
+ return SDLLayoutMode_LIST_WITH_SEARCH;
+}
+
++(SDLLayoutMode*) KEYBOARD {
+ if (SDLLayoutMode_KEYBOARD == nil) {
+ SDLLayoutMode_KEYBOARD = [[SDLLayoutMode alloc] initWithValue:@"KEYBOARD"];
+ }
+ return SDLLayoutMode_KEYBOARD;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLListFiles.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLListFiles.h
new file mode 100644
index 000000000..4e1c63cb0
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLListFiles.h
@@ -0,0 +1,13 @@
+// SDLListFiles.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLListFiles : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLListFiles.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLListFiles.m
new file mode 100644
index 000000000..69fadc785
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLListFiles.m
@@ -0,0 +1,21 @@
+// SDLListFiles.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLListFiles.h"
+
+#import "SDLNames.h"
+
+@implementation SDLListFiles
+
+-(id) init {
+ if (self = [super initWithName:NAMES_ListFiles]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLListFilesResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLListFilesResponse.h
new file mode 100644
index 000000000..c6af91ad7
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLListFilesResponse.h
@@ -0,0 +1,16 @@
+// SDLListFilesResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLListFilesResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSMutableArray* filenames;
+@property(strong) NSNumber* spaceAvailable;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLListFilesResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLListFilesResponse.m
new file mode 100644
index 000000000..4c5ef4501
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLListFilesResponse.m
@@ -0,0 +1,45 @@
+// SDLListFilesResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLListFilesResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLListFilesResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_ListFiles]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setFilenames:(NSMutableArray*) filenames {
+ if (filenames != nil) {
+ [parameters setObject:filenames forKey:NAMES_filenames];
+ } else {
+ [parameters removeObjectForKey:NAMES_filenames];
+ }
+}
+
+-(NSMutableArray*) filenames {
+ return [parameters objectForKey:NAMES_filenames];
+}
+
+-(void) setSpaceAvailable:(NSNumber*) spaceAvailable {
+ if (spaceAvailable != nil) {
+ [parameters setObject:spaceAvailable forKey:NAMES_spaceAvailable];
+ } else {
+ [parameters removeObjectForKey:NAMES_spaceAvailable];
+ }
+}
+
+-(NSNumber*) spaceAvailable {
+ return [parameters objectForKey:NAMES_spaceAvailable];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLLockScreenManager.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLLockScreenManager.h
new file mode 100644
index 000000000..06f21cb50
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLLockScreenManager.h
@@ -0,0 +1,19 @@
+//
+// SDLLockScreenManager.h
+// SmartDeviceLink
+//
+
+
+#import "SDLHMILevel.h"
+#import "SDLLockScreenStatus.h"
+#import "SDLOnLockScreenStatus.h"
+
+@interface SDLLockScreenManager : NSObject
+
+@property (assign, nonatomic) BOOL bUserSelected;
+@property (assign, nonatomic) BOOL bDriverDistractionStatus;
+@property (strong, nonatomic) SDLHMILevel *hmiLevel;
+@property (strong, nonatomic, readonly) SDLLockScreenStatus *lockScreenStatus;
+@property (strong, nonatomic, readonly) SDLOnLockScreenStatus *lockScreenStatusNotification;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLLockScreenManager.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLLockScreenManager.m
new file mode 100644
index 000000000..522f1b4ca
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLLockScreenManager.m
@@ -0,0 +1,94 @@
+//
+// SDLLockScreenManager.m
+// SmartDeviceLink
+//
+
+#import "SDLLockScreenManager.h"
+
+@interface SDLLockScreenManager ()
+
+@property (assign, nonatomic) BOOL bHaveDDStatus;
+
+@end
+
+
+@implementation SDLLockScreenManager
+
+- (instancetype)init
+{
+ self = [super init];
+ if (self) {
+ _bUserSelected = NO;
+ _bDriverDistractionStatus = NO;
+ _bHaveDDStatus = NO;
+ }
+ return self;
+}
+
+- (void)setBDriverDistractionStatus:(BOOL)bDriverDistractionStatus
+{
+ _bDriverDistractionStatus = bDriverDistractionStatus;
+ _bHaveDDStatus = YES;
+}
+
+- (void)setHmiLevel:(SDLHMILevel *)hmiLevel
+{
+ if (_hmiLevel != hmiLevel) {
+ _hmiLevel = hmiLevel;
+ }
+
+ if ([SDLHMILevel.HMI_FULL.value isEqualToString:hmiLevel.value] || [SDLHMILevel.HMI_LIMITED.value isEqualToString:hmiLevel.value]) {
+ _bUserSelected = YES;
+ } else if ([SDLHMILevel.HMI_NONE.value isEqualToString:hmiLevel.value]) {
+ _bUserSelected = NO;
+ }
+}
+
+- (SDLOnLockScreenStatus *)lockScreenStatusNotification {
+ SDLOnLockScreenStatus *notification = [SDLOnLockScreenStatus new];
+ notification.driverDistractionStatus = [NSNumber numberWithBool:_bDriverDistractionStatus];
+ notification.hmiLevel = _hmiLevel;
+ NSNumber *userSelected = [NSNumber numberWithBool:_bUserSelected];
+ notification.userSelected = userSelected;
+ notification.lockScreenStatus = [self lockScreenStatus];
+ return notification;
+}
+
+- (SDLLockScreenStatus *)lockScreenStatus
+{
+ if (_hmiLevel == nil || _hmiLevel == [SDLHMILevel HMI_NONE]) {
+ return [SDLLockScreenStatus OFF];
+ } else if (_hmiLevel == [SDLHMILevel HMI_BACKGROUND]) {
+ if (!_bHaveDDStatus)
+ {
+ //we don't have driver distraction, lockscreen is entirely based on userselection
+ if (_bUserSelected)
+ return [SDLLockScreenStatus REQUIRED];
+ else
+ return [SDLLockScreenStatus OFF];
+ }
+ else if (_bHaveDDStatus && _bUserSelected)
+ {
+ return [SDLLockScreenStatus REQUIRED];
+ }
+ else if (!_bHaveDDStatus && _bUserSelected)
+ {
+ return [SDLLockScreenStatus OPTIONAL];
+ }
+ else
+ {
+ return [SDLLockScreenStatus OFF];
+ }
+ } else if (_hmiLevel == [SDLHMILevel HMI_FULL] || _hmiLevel == [SDLHMILevel HMI_LIMITED]) {
+ if (_bHaveDDStatus && !_bDriverDistractionStatus) {
+ return [SDLLockScreenStatus OPTIONAL];
+ } else {
+ return [SDLLockScreenStatus REQUIRED];
+ }
+
+ } else {
+ return [SDLLockScreenStatus OFF];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLLockScreenStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLLockScreenStatus.h
new file mode 100644
index 000000000..7afa2799f
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLLockScreenStatus.h
@@ -0,0 +1,18 @@
+//
+// SDLLockScreenStatus.h
+// SmartDeviceLink
+//
+
+
+#import "SDLEnum.h"
+
+@interface SDLLockScreenStatus : SDLEnum
+
++ (SDLLockScreenStatus *)valueOf:(NSString *)value;
++ (NSMutableArray *)values;
+
++ (SDLLockScreenStatus *)OFF;
++ (SDLLockScreenStatus *)OPTIONAL;
++ (SDLLockScreenStatus *)REQUIRED;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLLockScreenStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLLockScreenStatus.m
new file mode 100644
index 000000000..a6b45592b
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLLockScreenStatus.m
@@ -0,0 +1,67 @@
+//
+// SDLLockScreenStatus.m
+// SmartDeviceLink
+//
+
+#import "SDLLockScreenStatus.h"
+
+@implementation SDLLockScreenStatus
+
+SDLLockScreenStatus* SDLLockScreenStatus_OFF = nil;
+SDLLockScreenStatus* SDLLockScreenStatus_OPTIONAL = nil;
+SDLLockScreenStatus* SDLLockScreenStatus_REQUIRED = nil;
+
+NSMutableArray* SDLLockScreenStatus_values = nil;
+
+
++ (SDLLockScreenStatus *)valueOf:(NSString *)value
+{
+ for (SDLLockScreenStatus* item in SDLLockScreenStatus.values)
+ {
+ if ([item.value isEqualToString:value])
+ {
+ return item;
+ }
+ }
+ return nil;
+}
+
++ (NSMutableArray *)values
+{
+ if (SDLLockScreenStatus_values == nil)
+ {
+ SDLLockScreenStatus_values = [[NSMutableArray alloc] initWithObjects:
+ SDLLockScreenStatus.OFF,
+ SDLLockScreenStatus.OPTIONAL,
+ SDLLockScreenStatus.REQUIRED,
+ nil];
+ }
+ return SDLLockScreenStatus_values;
+}
+
++ (SDLLockScreenStatus *)OFF
+{
+ if (SDLLockScreenStatus_OFF == nil) {
+ SDLLockScreenStatus_OFF = [[SDLLockScreenStatus alloc] initWithValue:@"OFF"];
+ }
+ return SDLLockScreenStatus_OFF;
+}
+
++ (SDLLockScreenStatus *)OPTIONAL
+{
+ if (SDLLockScreenStatus_OPTIONAL == nil) {
+ SDLLockScreenStatus_OPTIONAL = [[SDLLockScreenStatus alloc] initWithValue:@"OPTIONAL"];
+ }
+ return SDLLockScreenStatus_OPTIONAL;
+}
+
++ (SDLLockScreenStatus *)REQUIRED
+{
+ if (SDLLockScreenStatus_REQUIRED == nil) {
+ SDLLockScreenStatus_REQUIRED = [[SDLLockScreenStatus alloc] initWithValue:@"REQUIRED"];
+ }
+ return SDLLockScreenStatus_REQUIRED;
+}
+
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLMaintenanceModeStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLMaintenanceModeStatus.h
new file mode 100644
index 000000000..d5c9b43f5
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLMaintenanceModeStatus.h
@@ -0,0 +1,18 @@
+// SDLMaintenanceModeStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLMaintenanceModeStatus : SDLEnum {}
+
++(SDLMaintenanceModeStatus*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLMaintenanceModeStatus*) NORMAL;
++(SDLMaintenanceModeStatus*) NEAR;
++(SDLMaintenanceModeStatus*) ACTIVE;
++(SDLMaintenanceModeStatus*) FEATURE_NOT_PRESENT;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLMaintenanceModeStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLMaintenanceModeStatus.m
new file mode 100644
index 000000000..1c34d93b1
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLMaintenanceModeStatus.m
@@ -0,0 +1,65 @@
+// SDLMaintenanceModeStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLMaintenanceModeStatus.h"
+
+SDLMaintenanceModeStatus* SDLMaintenanceModeStatus_NORMAL = nil;
+SDLMaintenanceModeStatus* SDLMaintenanceModeStatus_NEAR = nil;
+SDLMaintenanceModeStatus* SDLMaintenanceModeStatus_ACTIVE = nil;
+SDLMaintenanceModeStatus* SDLMaintenanceModeStatus_FEATURE_NOT_PRESENT = nil;
+
+NSMutableArray* SDLMaintenanceModeStatus_values = nil;
+
+@implementation SDLMaintenanceModeStatus
+
++(SDLMaintenanceModeStatus*) valueOf:(NSString*) value {
+ for (SDLMaintenanceModeStatus* item in SDLMaintenanceModeStatus.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLMaintenanceModeStatus_values == nil) {
+ SDLMaintenanceModeStatus_values = [[NSMutableArray alloc] initWithObjects:
+ SDLMaintenanceModeStatus.NORMAL,
+ SDLMaintenanceModeStatus.NEAR,
+ SDLMaintenanceModeStatus.ACTIVE,
+ SDLMaintenanceModeStatus.FEATURE_NOT_PRESENT,
+ nil];
+ }
+ return SDLMaintenanceModeStatus_values;
+}
+
++(SDLMaintenanceModeStatus*) NORMAL {
+ if (SDLMaintenanceModeStatus_NORMAL == nil) {
+ SDLMaintenanceModeStatus_NORMAL = [[SDLMaintenanceModeStatus alloc] initWithValue:@"NORMAL"];
+ }
+ return SDLMaintenanceModeStatus_NORMAL;
+}
+
++(SDLMaintenanceModeStatus*) NEAR {
+ if (SDLMaintenanceModeStatus_NEAR == nil) {
+ SDLMaintenanceModeStatus_NEAR = [[SDLMaintenanceModeStatus alloc] initWithValue:@"NEAR"];
+ }
+ return SDLMaintenanceModeStatus_NEAR;
+}
+
++(SDLMaintenanceModeStatus*) ACTIVE {
+ if (SDLMaintenanceModeStatus_ACTIVE == nil) {
+ SDLMaintenanceModeStatus_ACTIVE = [[SDLMaintenanceModeStatus alloc] initWithValue:@"ACTIVE"];
+ }
+ return SDLMaintenanceModeStatus_ACTIVE;
+}
+
++(SDLMaintenanceModeStatus*) FEATURE_NOT_PRESENT {
+ if (SDLMaintenanceModeStatus_FEATURE_NOT_PRESENT == nil) {
+ SDLMaintenanceModeStatus_FEATURE_NOT_PRESENT = [[SDLMaintenanceModeStatus alloc] initWithValue:@"FEATURE_NOT_PRESENT"];
+ }
+ return SDLMaintenanceModeStatus_FEATURE_NOT_PRESENT;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLMediaClockFormat.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLMediaClockFormat.h
new file mode 100644
index 000000000..a2a9532b4
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLMediaClockFormat.h
@@ -0,0 +1,21 @@
+// SDLMediaClockFormat.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLMediaClockFormat : SDLEnum {}
+
++(SDLMediaClockFormat*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLMediaClockFormat*) CLOCK1;
++(SDLMediaClockFormat*) CLOCK2;
++(SDLMediaClockFormat*) CLOCK3;
++(SDLMediaClockFormat*) CLOCKTEXT1;
++(SDLMediaClockFormat*) CLOCKTEXT2;
++(SDLMediaClockFormat*) CLOCKTEXT3;
++(SDLMediaClockFormat*) CLOCKTEXT4;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLMediaClockFormat.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLMediaClockFormat.m
new file mode 100644
index 000000000..bfcfa1b84
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLMediaClockFormat.m
@@ -0,0 +1,92 @@
+// SDLMediaClockFormat.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLMediaClockFormat.h"
+
+SDLMediaClockFormat* SDLMediaClockFormat_CLOCK1 = nil;
+SDLMediaClockFormat* SDLMediaClockFormat_CLOCK2 = nil;
+SDLMediaClockFormat* SDLMediaClockFormat_CLOCK3 = nil;
+SDLMediaClockFormat* SDLMediaClockFormat_CLOCKTEXT1 = nil;
+SDLMediaClockFormat* SDLMediaClockFormat_CLOCKTEXT2 = nil;
+SDLMediaClockFormat* SDLMediaClockFormat_CLOCKTEXT3 = nil;
+SDLMediaClockFormat* SDLMediaClockFormat_CLOCKTEXT4 = nil;
+
+NSMutableArray* SDLMediaClockFormat_values = nil;
+
+@implementation SDLMediaClockFormat
+
++(SDLMediaClockFormat*) valueOf:(NSString*) value {
+ for (SDLMediaClockFormat* item in SDLMediaClockFormat.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLMediaClockFormat_values == nil) {
+ SDLMediaClockFormat_values = [[NSMutableArray alloc] initWithObjects:
+ SDLMediaClockFormat.CLOCK1,
+ SDLMediaClockFormat.CLOCK2,
+ SDLMediaClockFormat.CLOCK3,
+ SDLMediaClockFormat.CLOCKTEXT1,
+ SDLMediaClockFormat.CLOCKTEXT2,
+ SDLMediaClockFormat.CLOCKTEXT3,
+ SDLMediaClockFormat.CLOCKTEXT4,
+ nil];
+ }
+ return SDLMediaClockFormat_values;
+}
+
++(SDLMediaClockFormat*) CLOCK1 {
+ if (SDLMediaClockFormat_CLOCK1 == nil) {
+ SDLMediaClockFormat_CLOCK1 = [[SDLMediaClockFormat alloc] initWithValue:@"CLOCK1"];
+ }
+ return SDLMediaClockFormat_CLOCK1;
+}
+
++(SDLMediaClockFormat*) CLOCK2 {
+ if (SDLMediaClockFormat_CLOCK2 == nil) {
+ SDLMediaClockFormat_CLOCK2 = [[SDLMediaClockFormat alloc] initWithValue:@"CLOCK2"];
+ }
+ return SDLMediaClockFormat_CLOCK2;
+}
+
++(SDLMediaClockFormat*) CLOCK3 {
+ if (SDLMediaClockFormat_CLOCK3 == nil) {
+ SDLMediaClockFormat_CLOCK3 = [[SDLMediaClockFormat alloc] initWithValue:@"CLOCK3"];
+ }
+ return SDLMediaClockFormat_CLOCK3;
+}
+
++(SDLMediaClockFormat*) CLOCKTEXT1 {
+ if (SDLMediaClockFormat_CLOCKTEXT1 == nil) {
+ SDLMediaClockFormat_CLOCKTEXT1 = [[SDLMediaClockFormat alloc] initWithValue:@"CLOCKTEXT1"];
+ }
+ return SDLMediaClockFormat_CLOCKTEXT1;
+}
+
++(SDLMediaClockFormat*) CLOCKTEXT2 {
+ if (SDLMediaClockFormat_CLOCKTEXT2 == nil) {
+ SDLMediaClockFormat_CLOCKTEXT2 = [[SDLMediaClockFormat alloc] initWithValue:@"CLOCKTEXT2"];
+ }
+ return SDLMediaClockFormat_CLOCKTEXT2;
+}
+
++(SDLMediaClockFormat*) CLOCKTEXT3 {
+ if (SDLMediaClockFormat_CLOCKTEXT3 == nil) {
+ SDLMediaClockFormat_CLOCKTEXT3 = [[SDLMediaClockFormat alloc] initWithValue:@"CLOCKTEXT3"];
+ }
+ return SDLMediaClockFormat_CLOCKTEXT3;
+}
+
++(SDLMediaClockFormat*) CLOCKTEXT4 {
+ if (SDLMediaClockFormat_CLOCKTEXT4 == nil) {
+ SDLMediaClockFormat_CLOCKTEXT4 = [[SDLMediaClockFormat alloc] initWithValue:@"CLOCKTEXT4"];
+ }
+ return SDLMediaClockFormat_CLOCKTEXT4;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLMenuParams.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLMenuParams.h
new file mode 100644
index 000000000..2698a0973
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLMenuParams.h
@@ -0,0 +1,17 @@
+// SDLMenuParams.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+@interface SDLMenuParams : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* parentID;
+@property(strong) NSNumber* position;
+@property(strong) NSString* menuName;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLMenuParams.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLMenuParams.m
new file mode 100644
index 000000000..cefca6508
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLMenuParams.m
@@ -0,0 +1,57 @@
+// SDLMenuParams.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLMenuParams.h"
+
+#import "SDLNames.h"
+
+@implementation SDLMenuParams
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setParentID:(NSNumber*) parentID {
+ if (parentID != nil) {
+ [store setObject:parentID forKey:NAMES_parentID];
+ } else {
+ [store removeObjectForKey:NAMES_parentID];
+ }
+}
+
+-(NSNumber*) parentID {
+ return [store objectForKey:NAMES_parentID];
+}
+
+-(void) setPosition:(NSNumber*) position {
+ if (position != nil) {
+ [store setObject:position forKey:NAMES_position];
+ } else {
+ [store removeObjectForKey:NAMES_position];
+ }
+}
+
+-(NSNumber*) position {
+ return [store objectForKey:NAMES_position];
+}
+
+-(void) setMenuName:(NSString*) menuName {
+ if (menuName != nil) {
+ [store setObject:menuName forKey:NAMES_menuName];
+ } else {
+ [store removeObjectForKey:NAMES_menuName];
+ }
+}
+
+-(NSString*) menuName {
+ return [store objectForKey:NAMES_menuName];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLMyKey.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLMyKey.h
new file mode 100644
index 000000000..e723ab16d
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLMyKey.h
@@ -0,0 +1,17 @@
+// SDLMyKey.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLVehicleDataStatus.h"
+
+@interface SDLMyKey : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLVehicleDataStatus* e911Override;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLMyKey.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLMyKey.m
new file mode 100644
index 000000000..829e5d559
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLMyKey.m
@@ -0,0 +1,38 @@
+// SDLMyKey.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLMyKey.h"
+
+#import "SDLNames.h"
+
+@implementation SDLMyKey
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setE911Override:(SDLVehicleDataStatus*) e911Override {
+ if (e911Override != nil) {
+ [store setObject:e911Override forKey:NAMES_e911Override];
+ } else {
+ [store removeObjectForKey:NAMES_e911Override];
+ }
+}
+
+-(SDLVehicleDataStatus*) e911Override {
+ NSObject* obj = [store objectForKey:NAMES_e911Override];
+ if ([obj isKindOfClass:SDLVehicleDataStatus.class]) {
+ return (SDLVehicleDataStatus*)obj;
+ } else {
+ return [SDLVehicleDataStatus valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLNames.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLNames.h
new file mode 100644
index 000000000..b658b435d
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLNames.h
@@ -0,0 +1,395 @@
+// SDLNames.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+
+#define NAMES_accPedalPosition @"accPedalPosition"
+#define NAMES_actual @"actual"
+#define NAMES_AddCommand @"AddCommand"
+#define NAMES_AddSubMenu @"AddSubMenu"
+#define NAMES_airbagStatus @"airbagStatus"
+#define NAMES_Alert @"Alert"
+#define NAMES_AlertManeuver @"AlertManeuver"
+#define NAMES_alertText1 @"alertText1"
+#define NAMES_alertText2 @"alertText2"
+#define NAMES_alertText3 @"alertText3"
+#define NAMES_alignment @"alignment"
+#define NAMES_allowed @"allowed"
+#define NAMES_altitude @"altitude"
+#define NAMES_ambientLightSensorStatus @"ambientLightSensorStatus"
+#define NAMES_ambientLightStatus @"ambientLightStatus"
+#define NAMES_appHMIType @"appHMIType"
+#define NAMES_appID @"appID"
+#define NAMES_appName @"appName"
+#define NAMES_audioPassThruCapabilities @"audioPassThruCapabilities"
+#define NAMES_audioPassThruDisplayText1 @"audioPassThruDisplayText1"
+#define NAMES_audioPassThruDisplayText2 @"audioPassThruDisplayText2"
+#define NAMES_audioStreamingState @"audioStreamingState"
+#define NAMES_audioType @"audioType"
+#define NAMES_autoCompleteText @"autoCompleteText"
+#define NAMES_auxECallNotificationStatus @"auxECallNotificationStatus"
+#define NAMES_battLevelStatus @"battLevelStatus"
+#define NAMES_beltStatus @"beltStatus"
+#define NAMES_bitsPerSample @"bitsPerSample"
+#define NAMES_bodyInformation @"bodyInformation"
+#define NAMES_btIconOn @"btIconOn"
+#define NAMES_bulkData @"bulkData"
+#define NAMES_buttonCapabilities @"buttonCapabilities"
+#define NAMES_buttonEventMode @"buttonEventMode"
+#define NAMES_buttonName @"buttonName"
+#define NAMES_buttonPressMode @"buttonPressMode"
+#define NAMES_c @"c"
+#define NAMES_callActive @"callActive"
+#define NAMES_carModeStatus @"carModeStatus"
+#define NAMES_carrier @"carrier"
+#define NAMES_ChangeRegistration @"ChangeRegistration"
+#define NAMES_characterSet @"characterSet"
+#define NAMES_choiceID @"choiceID"
+#define NAMES_choiceSet @"choiceSet"
+#define NAMES_clusterModes @"clusterModes"
+#define NAMES_clusterModeStatus @"clusterModeStatus"
+#define NAMES_cmdIcon @"cmdIcon"
+#define NAMES_cmdID @"cmdID"
+#define NAMES_compassDirection @"compassDirection"
+#define NAMES_correlationID @"correlationID"
+#define NAMES_CreateInteractionChoiceSet @"CreateInteractionChoiceSet"
+#define NAMES_customButtonID @"customButtonID"
+#define NAMES_customPresets @"customPresets"
+#define NAMES_data @"data"
+#define NAMES_dataResult @"dataResult"
+#define NAMES_dataType @"dataType"
+#define NAMES_DeleteCommand @"DeleteCommand"
+#define NAMES_DeleteFile @"DeleteFile"
+#define NAMES_DeleteInteractionChoiceSet @"DeleteInteractionChoiceSet"
+#define NAMES_DeleteSubMenu @"DeleteSubMenu"
+#define NAMES_deviceInfo @"deviceInfo"
+#define NAMES_deviceStatus @"deviceStatus"
+#define NAMES_DiagnosticMessage @"DiagnosticMessage"
+#define NAMES_didLocation @"didLocation"
+#define NAMES_didResult @"didResult"
+#define NAMES_dimension @"dimension"
+#define NAMES_displayCapabilities @"displayCapabilities"
+#define NAMES_displayLayout @"displayLayout"
+#define NAMES_displayType @"displayType"
+#define NAMES_distanceToEmpty @"distanceToEmpty"
+#define NAMES_distanceToManeuver @"distanceToManeuver"
+#define NAMES_distanceToManeuverScale @"distanceToManeuverScale"
+#define NAMES_doublePressAvailable @"doublePressAvailable"
+#define NAMES_driverAirbagDeployed @"driverAirbagDeployed"
+#define NAMES_driverBeltDeployed @"driverBeltDeployed"
+#define NAMES_driverBraking @"driverBraking"
+#define NAMES_driverBuckleBelted @"driverBuckleBelted"
+#define NAMES_driverCurtainAirbagDeployed @"driverCurtainAirbagDeployed"
+#define NAMES_driverDoorAjar @"driverDoorAjar"
+#define NAMES_driverKneeAirbagDeployed @"driverKneeAirbagDeployed"
+#define NAMES_driverSideAirbagDeployed @"driverSideAirbagDeployed"
+#define NAMES_dtc @"dtc"
+#define NAMES_dtcMask @"dtcMask"
+#define NAMES_duration @"duration"
+#define NAMES_e911Override @"e911Override"
+#define NAMES_eCallConfirmationStatus @"eCallConfirmationStatus"
+#define NAMES_eCallEventActive @"eCallEventActive"
+#define NAMES_eCallInfo @"eCallInfo"
+#define NAMES_eCallNotificationStatus @"eCallNotificationStatus"
+#define NAMES_ecuHeader @"ecuHeader"
+#define NAMES_ecuName @"ecuName"
+#define NAMES_emergencyEvent @"emergencyEvent"
+#define NAMES_emergencyEventType @"emergencyEventType"
+#define NAMES_EncodedSyncPData @"EncodedSyncPData"
+#define NAMES_EndAudioPassThru @"EndAudioPassThru"
+#define NAMES_endTime @"endTime"
+#define NAMES_engineTorque @"engineTorque"
+#define NAMES_eta @"eta"
+#define NAMES_event @"event"
+#define NAMES_externalTemperature @"externalTemperature"
+#define NAMES_fileName @"fileName"
+#define NAMES_filenames @"filenames"
+#define NAMES_fileType @"fileType"
+#define NAMES_firmwareRev @"firmwareRev"
+#define NAMES_fuelCutoffStatus @"fuelCutoffStatus"
+#define NAMES_fuelLevel @"fuelLevel"
+#define NAMES_fuelLevel_State @"fuelLevel_State"
+#define NAMES_fuelMaintenanceMode @"fuelMaintenanceMode"
+#define NAMES_GenericResponse @"GenericResponse"
+#define NAMES_GetDTCs @"GetDTCs"
+#define NAMES_GetVehicleData @"GetVehicleData"
+#define NAMES_gps @"gps"
+#define NAMES_graphic @"graphic"
+#define NAMES_graphicSupported @"graphicSupported"
+#define NAMES_hardware @"hardware"
+#define NAMES_hashID @"hashID"
+#define NAMES_hdop @"hdop"
+#define NAMES_heading @"heading"
+#define NAMES_headLampStatus @"headLampStatus"
+#define NAMES_helpPrompt @"helpPrompt"
+#define NAMES_highBeamsOn @"highBeamsOn"
+#define NAMES_hmiDisplayLanguage @"hmiDisplayLanguage"
+#define NAMES_hmiDisplayLanguageDesired @"hmiDisplayLanguageDesired"
+#define NAMES_hmiLevel @"hmiLevel"
+#define NAMES_hmiPermissions @"hmiPermissions"
+#define NAMES_hmiZoneCapabilities @"hmiZoneCapabilities"
+#define NAMES_hours @"hours"
+#define NAMES_id @"id"
+#define NAMES_ignitionStableStatus @"ignitionStableStatus"
+#define NAMES_ignitionStatus @"ignitionStatus"
+#define NAMES_image @"image"
+#define NAMES_imageFields @"imageFields"
+#define NAMES_imageResolution @"imageResolution"
+#define NAMES_imageSupported @"imageSupported"
+#define NAMES_imageType @"imageType"
+#define NAMES_imageTypeSupported @"imageTypeSupported"
+#define NAMES_info @"info"
+#define NAMES_initialPrompt @"initialPrompt"
+#define NAMES_initialText @"initialText"
+#define NAMES_innerLeftRear @"innerLeftRear"
+#define NAMES_innerRightRear @"innerRightRear"
+#define NAMES_instantFuelConsumption @"instantFuelConsumption"
+#define NAMES_interactionChoiceSetID @"interactionChoiceSetID"
+#define NAMES_interactionChoiceSetIDList @"interactionChoiceSetIDList"
+#define NAMES_interactionLayout @"interactionLayout"
+#define NAMES_interactionMode @"interactionMode"
+#define NAMES_isHighlighted @"isHighlighted"
+#define NAMES_isMediaApplication @"isMediaApplication"
+#define NAMES_keyboardLayout @"keyboardLayout"
+#define NAMES_keyboardProperties @"keyboardProperties"
+#define NAMES_keypressMode @"keypressMode"
+#define NAMES_language @"language"
+#define NAMES_languageDesired @"languageDesired"
+#define NAMES_latitudeDegrees @"latitudeDegrees"
+#define NAMES_leftFront @"leftFront"
+#define NAMES_leftRear @"leftRear"
+#define NAMES_leftRearInflatableBelted @"leftRearInflatableBelted"
+#define NAMES_leftRow2BuckleBelted @"leftRow2BuckleBelted"
+#define NAMES_leftRow3BuckleBelted @"leftRow3BuckleBelted"
+#define NAMES_length @"length"
+#define NAMES_limitedCharacterList @"limitedCharacterList"
+#define NAMES_ListFiles @"ListFiles"
+#define NAMES_longitudeDegrees @"longitudeDegrees"
+#define NAMES_longPress @"longPress"
+#define NAMES_longPressAvailable @"longPressAvailable"
+#define NAMES_lowBeamsOn @"lowBeamsOn"
+#define NAMES_mainField1 @"mainField1"
+#define NAMES_mainField2 @"mainField2"
+#define NAMES_mainField3 @"mainField3"
+#define NAMES_mainField4 @"mainField4"
+#define NAMES_majorVersion @"majorVersion"
+#define NAMES_make @"make"
+#define NAMES_maneuverComplete @"maneuverComplete"
+#define NAMES_manualTextEntry @"manualTextEntry"
+#define NAMES_maxDuration @"maxDuration"
+#define NAMES_maximumChangeVelocity @"maximumChangeVelocity"
+#define NAMES_maxNumberRFCOMMPorts @"maxNumberRFCOMMPorts"
+#define NAMES_mediaClock @"mediaClock"
+#define NAMES_mediaClockFormats @"mediaClockFormats"
+#define NAMES_mediaTrack @"mediaTrack"
+#define NAMES_menuIcon @"menuIcon"
+#define NAMES_menuID @"menuID"
+#define NAMES_menuName @"menuName"
+#define NAMES_menuParams @"menuParams"
+#define NAMES_menuTitle @"menuTitle"
+#define NAMES_messageData @"messageData"
+#define NAMES_messageDataResult @"messageDataResult"
+#define NAMES_messageLength @"messageLength"
+#define NAMES_middleRow1BeltDeployed @"middleRow1BeltDeployed"
+#define NAMES_middleRow1BuckleBelted @"middleRow1BuckleBelted"
+#define NAMES_middleRow2BuckleBelted @"middleRow2BuckleBelted"
+#define NAMES_middleRow3BuckleBelted @"middleRow3BuckleBelted"
+#define NAMES_minorVersion @"minorVersion"
+#define NAMES_minutes @"minutes"
+#define NAMES_model @"model"
+#define NAMES_modelYear @"modelYear"
+#define NAMES_monoAudioOutputMuted @"monoAudioOutputMuted"
+#define NAMES_multipleEvents @"multipleEvents"
+#define NAMES_multiTouchAvailable @"multiTouchAvailable"
+#define NAMES_muteAudio @"muteAudio"
+#define NAMES_myKey @"myKey"
+#define NAMES_name @"name"
+#define NAMES_navigationText @"navigationText"
+#define NAMES_navigationText1 @"navigationText1"
+#define NAMES_navigationText2 @"navigationText2"
+#define NAMES_nextTurnIcon @"nextTurnIcon"
+#define NAMES_ngnMediaScreenAppName @"ngnMediaScreenAppName"
+#define NAMES_notification @"notification"
+#define NAMES_numCustomPresetsAvailable @"numCustomPresetsAvailable"
+#define NAMES_numTicks @"numTicks"
+#define NAMES_odometer @"odometer"
+#define NAMES_offset @"offset"
+#define NAMES_OnAppInterfaceUnregistered @"OnAppInterfaceUnregistered"
+#define NAMES_OnAudioPassThru @"OnAudioPassThru"
+#define NAMES_OnButtonEvent @"OnButtonEvent"
+#define NAMES_OnButtonPress @"OnButtonPress"
+#define NAMES_OnCommand @"OnCommand"
+#define NAMES_OnDriverDistraction @"OnDriverDistraction"
+#define NAMES_OnEncodedSyncPData @"OnEncodedSyncPData"
+#define NAMES_OnHashChange @"OnHashChange"
+#define NAMES_OnHMIStatus @"OnHMIStatus"
+#define NAMES_OnKeyboardInput @"OnKeyboardInput"
+#define NAMES_OnLanguageChange @"OnLanguageChange"
+#define NAMES_OnPermissionsChange @"OnPermissionsChange"
+#define NAMES_onScreenPresetsAvailable @"onScreenPresetsAvailable"
+#define NAMES_OnSyncPData @"OnSyncPData"
+#define NAMES_OnSystemRequest @"OnSystemRequest"
+#define NAMES_OnTBTClientState @"OnTBTClientState"
+#define NAMES_OnTouchEvent @"OnTouchEvent"
+#define NAMES_OnVehicleData @"OnVehicleData"
+#define NAMES_operation_name @"name"
+#define NAMES_os @"os"
+#define NAMES_osVersion @"osVersion"
+#define NAMES_parameterPermissions @"parameterPermissions"
+#define NAMES_parameters @"parameters"
+#define NAMES_parentID @"parentID"
+#define NAMES_parkBrakeActive @"parkBrakeActive"
+#define NAMES_passengerAirbagDeployed @"passengerAirbagDeployed"
+#define NAMES_passengerBeltDeployed @"passengerBeltDeployed"
+#define NAMES_passengerBuckleBelted @"passengerBuckleBelted"
+#define NAMES_passengerChildDetected @"passengerChildDetected"
+#define NAMES_passengerCurtainAirbagDeployed @"passengerCurtainAirbagDeployed"
+#define NAMES_passengerDoorAjar @"passengerDoorAjar"
+#define NAMES_passengerKneeAirbagDeployed @"passengerKneeAirbagDeployed"
+#define NAMES_passengerSideAirbagDeployed @"passengerSideAirbagDeployed"
+#define NAMES_pdop @"pdop"
+#define NAMES_PerformAudioPassThru @"PerformAudioPassThru"
+#define NAMES_PerformInteraction @"PerformInteraction"
+#define NAMES_permissionItem @"permissionItem"
+#define NAMES_persistentFile @"persistentFile"
+#define NAMES_phoneRoaming @"phoneRoaming"
+#define NAMES_playTone @"playTone"
+#define NAMES_position @"position"
+#define NAMES_powerModeActive @"powerModeActive"
+#define NAMES_powerModeQualificationStatus @"powerModeQualificationStatus"
+#define NAMES_powerModeStatus @"powerModeStatus"
+#define NAMES_prerecordedSpeech @"prerecordedSpeech"
+#define NAMES_presetBankCapabilities @"presetBankCapabilities"
+#define NAMES_pressAvailable @"pressAvailable"
+#define NAMES_pressure @"pressure"
+#define NAMES_pressureTelltale @"pressureTelltale"
+#define NAMES_primaryAudioSource @"primaryAudioSource"
+#define NAMES_prndl @"prndl"
+#define NAMES_progressIndicator @"progressIndicator"
+#define NAMES_properties @"properties"
+#define NAMES_PutFile @"PutFile"
+#define NAMES_ReadDID @"ReadDID"
+#define NAMES_rearLeftDoorAjar @"rearLeftDoorAjar"
+#define NAMES_rearRightDoorAjar @"rearRightDoorAjar"
+#define NAMES_reason @"reason"
+#define NAMES_RegisterAppInterface @"RegisterAppInterface"
+#define NAMES_request @"request"
+#define NAMES_requestType @"requestType"
+#define NAMES_reserved @"reserved"
+#define NAMES_ResetGlobalProperties @"ResetGlobalProperties"
+#define NAMES_resolution @"resolution"
+#define NAMES_resolutionHeight @"resolutionHeight"
+#define NAMES_resolutionWidth @"resolutionWidth"
+#define NAMES_response @"response"
+#define NAMES_result @"result"
+#define NAMES_resultCode @"resultCode"
+#define NAMES_rightFront @"rightFront"
+#define NAMES_rightRear @"rightRear"
+#define NAMES_rightRearInflatableBelted @"rightRearInflatableBelted"
+#define NAMES_rightRow2BuckleBelted @"rightRow2BuckleBelted"
+#define NAMES_rightRow3BuckleBelted @"rightRow3BuckleBelted"
+#define NAMES_rolloverEvent @"rolloverEvent"
+#define NAMES_rows @"rows"
+#define NAMES_rpcName @"rpcName"
+#define NAMES_rpm @"rpm"
+#define NAMES_samplingRate @"samplingRate"
+#define NAMES_satellites @"satellites"
+#define NAMES_screenParams @"screenParams"
+#define NAMES_ScrollableMessage @"ScrollableMessage"
+#define NAMES_scrollableMessageBody @"scrollableMessageBody"
+#define NAMES_secondaryGraphic @"secondaryGraphic"
+#define NAMES_secondaryImage @"secondaryImage"
+#define NAMES_secondaryText @"secondaryText"
+#define NAMES_seconds @"seconds"
+#define NAMES_SetAppIcon @"SetAppIcon"
+#define NAMES_SetDisplayLayout @"SetDisplayLayout"
+#define NAMES_SetGlobalProperties @"SetGlobalProperties"
+#define NAMES_SetMediaClockTimer @"SetMediaClockTimer"
+#define NAMES_shortPress @"shortPress"
+#define NAMES_shortPressAvailable @"shortPressAvailable"
+#define NAMES_Show @"Show"
+#define NAMES_ShowConstantTBT @"ShowConstantTBT"
+#define NAMES_signalLevelStatus @"signalLevelStatus"
+#define NAMES_Slider @"Slider"
+#define NAMES_sliderFooter @"sliderFooter"
+#define NAMES_sliderHeader @"sliderHeader"
+#define NAMES_sliderPosition @"sliderPosition"
+#define NAMES_softButtonCapabilities @"softButtonCapabilities"
+#define NAMES_softButtonID @"softButtonID"
+#define NAMES_softButtons @"softButtons"
+#define NAMES_spaceAvailable @"spaceAvailable"
+#define NAMES_Speak @"Speak"
+#define NAMES_speechCapabilities @"speechCapabilities"
+#define NAMES_speed @"speed"
+#define NAMES_startTime @"startTime"
+#define NAMES_state @"state"
+#define NAMES_stateOfCharge @"stateOfCharge"
+#define NAMES_status @"status"
+#define NAMES_statusBar @"statusBar"
+#define NAMES_steeringWheelAngle @"steeringWheelAngle"
+#define NAMES_stereoAudioOutputMuted @"stereoAudioOutputMuted"
+#define NAMES_Subscribe @"Subscribe"
+#define NAMES_SubscribeButton @"SubscribeButton"
+#define NAMES_SubscribeVehicleData @"SubscribeVehicleData"
+#define NAMES_success @"success"
+#define NAMES_supportedDiagModes @"supportedDiagModes"
+#define NAMES_syncFileName @"syncFileName"
+#define NAMES_syncMsgVersion @"syncMsgVersion"
+#define NAMES_SyncPData @"SyncPData"
+#define NAMES_systemAction @"systemAction"
+#define NAMES_systemContext @"systemContext"
+#define NAMES_systemFile @"systemFile"
+#define NAMES_SystemRequest @"SystemRequest"
+#define NAMES_targetID @"targetID"
+#define NAMES_templatesAvailable @"templatesAvailable"
+#define NAMES_tertiaryText @"tertiaryText"
+#define NAMES_text @"text"
+#define NAMES_textFields @"textFields"
+#define NAMES_textMsgAvailable @"textMsgAvailable"
+#define NAMES_timeout @"timeout"
+#define NAMES_Timeout @"Timeout"
+#define NAMES_timeoutPrompt @"timeoutPrompt"
+#define NAMES_timeToDestination @"timeToDestination"
+#define NAMES_tirePressure @"tirePressure"
+#define NAMES_totalDistance @"totalDistance"
+#define NAMES_touchEventAvailable @"touchEventAvailable"
+#define NAMES_triggerSource @"triggerSource"
+#define NAMES_trim @"trim"
+#define NAMES_tryAgainTime @"tryAgainTime"
+#define NAMES_ts @"ts"
+#define NAMES_ttsChunks @"ttsChunks"
+#define NAMES_ttsName @"ttsName"
+#define NAMES_turnIcon @"turnIcon"
+#define NAMES_turnList @"turnList"
+#define NAMES_type @"type"
+#define NAMES_UnregisterAppInterface @"UnregisterAppInterface"
+#define NAMES_Unsubscribe @"Unsubscribe"
+#define NAMES_UnsubscribeButton @"UnsubscribeButton"
+#define NAMES_UnsubscribeVehicleData @"UnsubscribeVehicleData"
+#define NAMES_updateMode @"updateMode"
+#define NAMES_UpdateTurnList @"UpdateTurnList"
+#define NAMES_upDownAvailable @"upDownAvailable"
+#define NAMES_url @"url"
+#define NAMES_URL @"URL"
+#define NAMES_userDisallowed @"userDisallowed"
+#define NAMES_utcDay @"utcDay"
+#define NAMES_utcHours @"utcHours"
+#define NAMES_utcMinutes @"utcMinutes"
+#define NAMES_utcMonth @"utcMonth"
+#define NAMES_utcSeconds @"utcSeconds"
+#define NAMES_utcYear @"utcYear"
+#define NAMES_value @"value"
+#define NAMES_vdop @"vdop"
+#define NAMES_vehicleType @"vehicleType"
+#define NAMES_vin @"vin"
+#define NAMES_voiceRecOn @"voiceRecOn"
+#define NAMES_vrCapabilities @"vrCapabilities"
+#define NAMES_vrCommands @"vrCommands"
+#define NAMES_vrHelp @"vrHelp"
+#define NAMES_vrHelpTitle @"vrHelpTitle"
+#define NAMES_vrSynonyms @"vrSynonyms"
+#define NAMES_width @"width"
+#define NAMES_wiperStatus @"wiperStatus"
+#define NAMES_x @"x"
+#define NAMES_y @"y"
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLObjectWithPriority.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLObjectWithPriority.h
new file mode 100644
index 000000000..eff2f642a
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLObjectWithPriority.h
@@ -0,0 +1,16 @@
+//
+// SDLObjectWithPriority.h
+// SmartDeviceLink
+//
+
+@import Foundation;
+
+@interface SDLObjectWithPriority : NSObject
+
+@property (strong) id object;
+@property (assign) NSInteger priority;
+
+@end
+
+
+
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLObjectWithPriority.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLObjectWithPriority.m
new file mode 100644
index 000000000..565868dcb
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLObjectWithPriority.m
@@ -0,0 +1,10 @@
+//
+// SDLObjectWithPriority.m
+// SmartDeviceLink
+//
+
+#import "SDLObjectWithPriority.h"
+
+@implementation SDLObjectWithPriority
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnAppInterfaceUnregistered.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnAppInterfaceUnregistered.h
new file mode 100644
index 000000000..4eaff3403
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnAppInterfaceUnregistered.h
@@ -0,0 +1,17 @@
+// SDLOnAppInterfaceUnregistered.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCNotification.h"
+
+#import "SDLAppInterfaceUnregisteredReason.h"
+
+@interface SDLOnAppInterfaceUnregistered : SDLRPCNotification {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLAppInterfaceUnregisteredReason* reason;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnAppInterfaceUnregistered.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnAppInterfaceUnregistered.m
new file mode 100644
index 000000000..3691e4964
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnAppInterfaceUnregistered.m
@@ -0,0 +1,38 @@
+// SDLOnAppInterfaceUnregistered.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLOnAppInterfaceUnregistered.h"
+
+#import "SDLNames.h"
+
+@implementation SDLOnAppInterfaceUnregistered
+
+-(id) init {
+ if (self = [super initWithName:NAMES_OnAppInterfaceUnregistered]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setReason:(SDLAppInterfaceUnregisteredReason*) reason {
+ if (reason != nil) {
+ [parameters setObject:reason forKey:NAMES_reason];
+ } else {
+ [parameters removeObjectForKey:NAMES_reason];
+ }
+}
+
+-(SDLAppInterfaceUnregisteredReason*) reason {
+ NSObject* obj = [parameters objectForKey:NAMES_reason];
+ if ([obj isKindOfClass:SDLAppInterfaceUnregisteredReason.class]) {
+ return (SDLAppInterfaceUnregisteredReason*)obj;
+ } else {
+ return [SDLAppInterfaceUnregisteredReason valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnAudioPassThru.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnAudioPassThru.h
new file mode 100644
index 000000000..a60d7adb2
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnAudioPassThru.h
@@ -0,0 +1,13 @@
+// SDLOnAudioPassThru.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCNotification.h"
+
+@interface SDLOnAudioPassThru : SDLRPCNotification {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnAudioPassThru.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnAudioPassThru.m
new file mode 100644
index 000000000..fbd448ee9
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnAudioPassThru.m
@@ -0,0 +1,21 @@
+// SDLOnAudioPassThru.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLOnAudioPassThru.h"
+
+#import "SDLNames.h"
+
+@implementation SDLOnAudioPassThru
+
+-(id) init {
+ if (self = [super initWithName:NAMES_OnAudioPassThru]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnButtonEvent.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnButtonEvent.h
new file mode 100644
index 000000000..bd3150358
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnButtonEvent.h
@@ -0,0 +1,20 @@
+// SDLOnButtonEvent.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCNotification.h"
+
+#import "SDLButtonName.h"
+#import "SDLButtonEventMode.h"
+
+@interface SDLOnButtonEvent : SDLRPCNotification {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLButtonName* buttonName;
+@property(strong) SDLButtonEventMode* buttonEventMode;
+@property(strong) NSNumber* customButtonID;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnButtonEvent.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnButtonEvent.m
new file mode 100644
index 000000000..e291da843
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnButtonEvent.m
@@ -0,0 +1,67 @@
+// SDLOnButtonEvent.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLOnButtonEvent.h"
+
+#import "SDLNames.h"
+
+@implementation SDLOnButtonEvent
+
+-(id) init {
+ if (self = [super initWithName:NAMES_OnButtonEvent]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setButtonName:(SDLButtonName*) buttonName {
+ if (buttonName != nil) {
+ [parameters setObject:buttonName forKey:NAMES_buttonName];
+ } else {
+ [parameters removeObjectForKey:NAMES_buttonName];
+ }
+}
+
+-(SDLButtonName*) buttonName {
+ NSObject* obj = [parameters objectForKey:NAMES_buttonName];
+ if ([obj isKindOfClass:SDLButtonName.class]) {
+ return (SDLButtonName*)obj;
+ } else {
+ return [SDLButtonName valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setButtonEventMode:(SDLButtonEventMode*) buttonEventMode {
+ if (buttonEventMode != nil) {
+ [parameters setObject:buttonEventMode forKey:NAMES_buttonEventMode];
+ } else {
+ [parameters removeObjectForKey:NAMES_buttonEventMode];
+ }
+}
+
+-(SDLButtonEventMode*) buttonEventMode {
+ NSObject* obj = [parameters objectForKey:NAMES_buttonEventMode];
+ if ([obj isKindOfClass:SDLButtonEventMode.class]) {
+ return (SDLButtonEventMode*)obj;
+ } else {
+ return [SDLButtonEventMode valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setCustomButtonID:(NSNumber*) customButtonID {
+ if (customButtonID != nil) {
+ [parameters setObject:customButtonID forKey:NAMES_customButtonID];
+ } else {
+ [parameters removeObjectForKey:NAMES_customButtonID];
+ }
+}
+
+-(NSNumber*) customButtonID {
+ return [parameters objectForKey:NAMES_customButtonID];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnButtonPress.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnButtonPress.h
new file mode 100644
index 000000000..89ab0c0ec
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnButtonPress.h
@@ -0,0 +1,20 @@
+// SDLOnButtonPress.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCNotification.h"
+
+#import "SDLButtonName.h"
+#import "SDLButtonPressMode.h"
+
+@interface SDLOnButtonPress : SDLRPCNotification {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLButtonName* buttonName;
+@property(strong) SDLButtonPressMode* buttonPressMode;
+@property(strong) NSNumber* customButtonID;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnButtonPress.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnButtonPress.m
new file mode 100644
index 000000000..9c842364b
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnButtonPress.m
@@ -0,0 +1,67 @@
+// SDLOnButtonPress.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLOnButtonPress.h"
+
+#import "SDLNames.h"
+
+@implementation SDLOnButtonPress
+
+-(id) init {
+ if (self = [super initWithName:NAMES_OnButtonPress]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setButtonName:(SDLButtonName*) buttonName {
+ if (buttonName != nil) {
+ [parameters setObject:buttonName forKey:NAMES_buttonName];
+ } else {
+ [parameters removeObjectForKey:NAMES_buttonName];
+ }
+}
+
+-(SDLButtonName*) buttonName {
+ NSObject* obj = [parameters objectForKey:NAMES_buttonName];
+ if ([obj isKindOfClass:SDLButtonName.class]) {
+ return (SDLButtonName*)obj;
+ } else {
+ return [SDLButtonName valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setButtonPressMode:(SDLButtonPressMode*) buttonPressMode {
+ if (buttonPressMode != nil) {
+ [parameters setObject:buttonPressMode forKey:NAMES_buttonPressMode];
+ } else {
+ [parameters removeObjectForKey:NAMES_buttonPressMode];
+ }
+}
+
+-(SDLButtonPressMode*) buttonPressMode {
+ NSObject* obj = [parameters objectForKey:NAMES_buttonPressMode];
+ if ([obj isKindOfClass:SDLButtonPressMode.class]) {
+ return (SDLButtonPressMode*)obj;
+ } else {
+ return [SDLButtonPressMode valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setCustomButtonID:(NSNumber*) customButtonID {
+ if (customButtonID != nil) {
+ [parameters setObject:customButtonID forKey:NAMES_customButtonID];
+ } else {
+ [parameters removeObjectForKey:NAMES_customButtonID];
+ }
+}
+
+-(NSNumber*) customButtonID {
+ return [parameters objectForKey:NAMES_customButtonID];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnCommand.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnCommand.h
new file mode 100644
index 000000000..77f8a85bf
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnCommand.h
@@ -0,0 +1,18 @@
+// SDLOnCommand.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCNotification.h"
+
+#import "SDLTriggerSource.h"
+
+@interface SDLOnCommand : SDLRPCNotification {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* cmdID;
+@property(strong) SDLTriggerSource* triggerSource;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnCommand.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnCommand.m
new file mode 100644
index 000000000..b8f0667d7
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnCommand.m
@@ -0,0 +1,50 @@
+// SDLOnCommand.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLOnCommand.h"
+
+#import "SDLNames.h"
+
+@implementation SDLOnCommand
+
+-(id) init {
+ if (self = [super initWithName:NAMES_OnCommand]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setCmdID:(NSNumber*) cmdID {
+ if (cmdID != nil) {
+ [parameters setObject:cmdID forKey:NAMES_cmdID];
+ } else {
+ [parameters removeObjectForKey:NAMES_cmdID];
+ }
+}
+
+-(NSNumber*) cmdID {
+ return [parameters objectForKey:NAMES_cmdID];
+}
+
+-(void) setTriggerSource:(SDLTriggerSource*) triggerSource {
+ if (triggerSource != nil) {
+ [parameters setObject:triggerSource forKey:NAMES_triggerSource];
+ } else {
+ [parameters removeObjectForKey:NAMES_triggerSource];
+ }
+}
+
+-(SDLTriggerSource*) triggerSource {
+ NSObject* obj = [parameters objectForKey:NAMES_triggerSource];
+ if ([obj isKindOfClass:SDLTriggerSource.class]) {
+ return (SDLTriggerSource*)obj;
+ } else {
+ return [SDLTriggerSource valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnDriverDistraction.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnDriverDistraction.h
new file mode 100644
index 000000000..7401d4e3a
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnDriverDistraction.h
@@ -0,0 +1,17 @@
+// SDLOnDriverDistraction.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCNotification.h"
+
+#import "SDLDriverDistractionState.h"
+
+@interface SDLOnDriverDistraction : SDLRPCNotification {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLDriverDistractionState* state;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnDriverDistraction.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnDriverDistraction.m
new file mode 100644
index 000000000..ab58e872e
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnDriverDistraction.m
@@ -0,0 +1,38 @@
+// SDLOnDriverDistraction.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLOnDriverDistraction.h"
+
+#import "SDLNames.h"
+
+@implementation SDLOnDriverDistraction
+
+-(id) init {
+ if (self = [super initWithName:NAMES_OnDriverDistraction]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setState:(SDLDriverDistractionState*) state {
+ if (state != nil) {
+ [parameters setObject:state forKey:NAMES_state];
+ } else {
+ [parameters removeObjectForKey:NAMES_state];
+ }
+}
+
+-(SDLDriverDistractionState*) state {
+ NSObject* obj = [parameters objectForKey:NAMES_state];
+ if ([obj isKindOfClass:SDLDriverDistractionState.class]) {
+ return (SDLDriverDistractionState*)obj;
+ } else {
+ return [SDLDriverDistractionState valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnEncodedSyncPData.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnEncodedSyncPData.h
new file mode 100644
index 000000000..967cb9a14
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnEncodedSyncPData.h
@@ -0,0 +1,17 @@
+// SDLOnEncodedSyncPData.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCNotification.h"
+
+@interface SDLOnEncodedSyncPData : SDLRPCNotification {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSMutableArray* data;
+@property(strong) NSString* URL;
+@property(strong) NSNumber* Timeout;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnEncodedSyncPData.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnEncodedSyncPData.m
new file mode 100644
index 000000000..e3ce877ba
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnEncodedSyncPData.m
@@ -0,0 +1,57 @@
+// SDLOnEncodedSyncPData.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLOnEncodedSyncPData.h"
+
+#import "SDLNames.h"
+
+@implementation SDLOnEncodedSyncPData
+
+-(id) init {
+ if (self = [super initWithName:NAMES_OnEncodedSyncPData]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setData:(NSMutableArray*) data {
+ if (data != nil) {
+ [parameters setObject:data forKey:NAMES_data];
+ } else {
+ [parameters removeObjectForKey:NAMES_data];
+ }
+}
+
+-(NSMutableArray*) data {
+ return [parameters objectForKey:NAMES_data];
+}
+
+-(void) setURL:(NSString*) URL {
+ if (URL != nil) {
+ [parameters setObject:URL forKey:NAMES_URL];
+ } else {
+ [parameters removeObjectForKey:NAMES_URL];
+ }
+}
+
+-(NSString*) URL {
+ return [parameters objectForKey:NAMES_URL];
+}
+
+-(void) setTimeout:(NSNumber*) Timeout {
+ if (Timeout != nil) {
+ [parameters setObject:Timeout forKey:NAMES_Timeout];
+ } else {
+ [parameters removeObjectForKey:NAMES_Timeout];
+ }
+}
+
+-(NSNumber*) Timeout {
+ return [parameters objectForKey:NAMES_Timeout];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnHMIStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnHMIStatus.h
new file mode 100644
index 000000000..0f542b23a
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnHMIStatus.h
@@ -0,0 +1,21 @@
+// SDLOnHMIStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCNotification.h"
+
+#import "SDLHMILevel.h"
+#import "SDLAudioStreamingState.h"
+#import "SDLSystemContext.h"
+
+@interface SDLOnHMIStatus : SDLRPCNotification {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLHMILevel* hmiLevel;
+@property(strong) SDLAudioStreamingState* audioStreamingState;
+@property(strong) SDLSystemContext* systemContext;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnHMIStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnHMIStatus.m
new file mode 100644
index 000000000..b6a472df0
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnHMIStatus.m
@@ -0,0 +1,72 @@
+// SDLOnHMIStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLOnHMIStatus.h"
+
+#import "SDLNames.h"
+
+@implementation SDLOnHMIStatus
+
+-(id) init {
+ if (self = [super initWithName:NAMES_OnHMIStatus]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setHmiLevel:(SDLHMILevel*) hmiLevel {
+ if (hmiLevel != nil) {
+ [parameters setObject:hmiLevel forKey:NAMES_hmiLevel];
+ } else {
+ [parameters removeObjectForKey:NAMES_hmiLevel];
+ }
+}
+
+-(SDLHMILevel*) hmiLevel {
+ NSObject* obj = [parameters objectForKey:NAMES_hmiLevel];
+ if ([obj isKindOfClass:SDLHMILevel.class]) {
+ return (SDLHMILevel*)obj;
+ } else {
+ return [SDLHMILevel valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setAudioStreamingState:(SDLAudioStreamingState*) audioStreamingState {
+ if (audioStreamingState != nil) {
+ [parameters setObject:audioStreamingState forKey:NAMES_audioStreamingState];
+ } else {
+ [parameters removeObjectForKey:NAMES_audioStreamingState];
+ }
+}
+
+-(SDLAudioStreamingState*) audioStreamingState {
+ NSObject* obj = [parameters objectForKey:NAMES_audioStreamingState];
+ if ([obj isKindOfClass:SDLAudioStreamingState.class]) {
+ return (SDLAudioStreamingState*)obj;
+ } else {
+ return [SDLAudioStreamingState valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setSystemContext:(SDLSystemContext*) systemContext {
+ if (systemContext != nil) {
+ [parameters setObject:systemContext forKey:NAMES_systemContext];
+ } else {
+ [parameters removeObjectForKey:NAMES_systemContext];
+ }
+}
+
+-(SDLSystemContext*) systemContext {
+ NSObject* obj = [parameters objectForKey:NAMES_systemContext];
+ if ([obj isKindOfClass:SDLSystemContext.class]) {
+ return (SDLSystemContext*)obj;
+ } else {
+ return [SDLSystemContext valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnHashChange.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnHashChange.h
new file mode 100644
index 000000000..170894f8f
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnHashChange.h
@@ -0,0 +1,15 @@
+// SDLOnHashChange.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCNotification.h"
+
+@interface SDLOnHashChange : SDLRPCNotification {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSString* hashID;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnHashChange.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnHashChange.m
new file mode 100644
index 000000000..07cb20bcc
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnHashChange.m
@@ -0,0 +1,33 @@
+// SDLOnHashChange.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLOnHashChange.h"
+
+#import "SDLNames.h"
+
+@implementation SDLOnHashChange
+
+-(id) init {
+ if (self = [super initWithName:NAMES_OnHashChange]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setHashID:(NSString*) hashID {
+ if (hashID != nil) {
+ [parameters setObject:hashID forKey:NAMES_hashID];
+ } else {
+ [parameters removeObjectForKey:NAMES_hashID];
+ }
+}
+
+-(NSString*) hashID {
+ return [parameters objectForKey:NAMES_hashID];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnKeyboardInput.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnKeyboardInput.h
new file mode 100644
index 000000000..00ea8c69c
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnKeyboardInput.h
@@ -0,0 +1,18 @@
+// SDLOnKeyboardInput.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCNotification.h"
+
+#import "SDLKeyboardEvent.h"
+
+@interface SDLOnKeyboardInput : SDLRPCNotification {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLKeyboardEvent* event;
+@property(strong) NSString* data;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnKeyboardInput.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnKeyboardInput.m
new file mode 100644
index 000000000..1aa668361
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnKeyboardInput.m
@@ -0,0 +1,50 @@
+// SDLOnKeyboardInput.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLOnKeyboardInput.h"
+
+#import "SDLNames.h"
+
+@implementation SDLOnKeyboardInput
+
+-(id) init {
+ if (self = [super initWithName:NAMES_OnKeyboardInput]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setEvent:(SDLKeyboardEvent*) event {
+ if (event != nil) {
+ [parameters setObject:event forKey:NAMES_event];
+ } else {
+ [parameters removeObjectForKey:NAMES_event];
+ }
+}
+
+-(SDLKeyboardEvent*) event {
+ NSObject* obj = [parameters objectForKey:NAMES_event];
+ if ([obj isKindOfClass:SDLKeyboardEvent.class]) {
+ return (SDLKeyboardEvent*)obj;
+ } else {
+ return [SDLKeyboardEvent valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setData:(NSString*) data {
+ if (data != nil) {
+ [parameters setObject:data forKey:NAMES_data];
+ } else {
+ [parameters removeObjectForKey:NAMES_data];
+ }
+}
+
+-(NSString*) data {
+ return [parameters objectForKey:NAMES_data];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnLanguageChange.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnLanguageChange.h
new file mode 100644
index 000000000..538415f8b
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnLanguageChange.h
@@ -0,0 +1,18 @@
+// SDLOnLanguageChange.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCNotification.h"
+
+#import "SDLLanguage.h"
+
+@interface SDLOnLanguageChange : SDLRPCNotification {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLLanguage* language;
+@property(strong) SDLLanguage* hmiDisplayLanguage;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnLanguageChange.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnLanguageChange.m
new file mode 100644
index 000000000..84bfa913a
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnLanguageChange.m
@@ -0,0 +1,55 @@
+// SDLOnLanguageChange.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLOnLanguageChange.h"
+
+#import "SDLNames.h"
+
+@implementation SDLOnLanguageChange
+
+-(id) init {
+ if (self = [super initWithName:NAMES_OnLanguageChange]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setLanguage:(SDLLanguage*) language {
+ if (language != nil) {
+ [parameters setObject:language forKey:NAMES_language];
+ } else {
+ [parameters removeObjectForKey:NAMES_language];
+ }
+}
+
+-(SDLLanguage*) language {
+ NSObject* obj = [parameters objectForKey:NAMES_language];
+ if ([obj isKindOfClass:SDLLanguage.class]) {
+ return (SDLLanguage*)obj;
+ } else {
+ return [SDLLanguage valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setHmiDisplayLanguage:(SDLLanguage*) hmiDisplayLanguage {
+ if (hmiDisplayLanguage != nil) {
+ [parameters setObject:hmiDisplayLanguage forKey:NAMES_hmiDisplayLanguage];
+ } else {
+ [parameters removeObjectForKey:NAMES_hmiDisplayLanguage];
+ }
+}
+
+-(SDLLanguage*) hmiDisplayLanguage {
+ NSObject* obj = [parameters objectForKey:NAMES_hmiDisplayLanguage];
+ if ([obj isKindOfClass:SDLLanguage.class]) {
+ return (SDLLanguage*)obj;
+ } else {
+ return [SDLLanguage valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnLockScreenStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnLockScreenStatus.h
new file mode 100644
index 000000000..5391ae006
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnLockScreenStatus.h
@@ -0,0 +1,24 @@
+//
+// SDLOnLockScreenStatus.h
+// SmartDeviceLink
+//
+
+#import "SDLLockScreenStatus.h"
+
+#import "SDLRPCNotification.h"
+
+
+@class SDLHMILevel;
+@class SDLLockScreenStatus;
+
+@interface SDLOnLockScreenStatus : SDLRPCNotification
+
+- (id)init;
+- (id)initWithDictionary:(NSMutableDictionary *)dict;
+
+@property(strong) NSNumber *driverDistractionStatus;
+@property(strong) NSNumber *userSelected;
+@property(strong) SDLLockScreenStatus *lockScreenStatus;
+@property(strong) SDLHMILevel *hmiLevel;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnLockScreenStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnLockScreenStatus.m
new file mode 100644
index 000000000..678a2cb52
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnLockScreenStatus.m
@@ -0,0 +1,85 @@
+//
+// SDLOnLockScreenStatus.m
+// SmartDeviceLink
+//
+
+#import "SDLOnLockScreenStatus.h"
+
+#import "SDLHMILevel.h"
+#import "SDLLockScreenStatus.h"
+
+@implementation SDLOnLockScreenStatus
+
+- (id)init {
+ if (self = [super initWithName:@"OnLockScreenStatus"]) {
+
+ }
+ return self;
+}
+
+- (id)initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {
+
+ }
+ return self;
+}
+
+- (void)setLockScreenStatus:(SDLLockScreenStatus*)lockScreenStatus {
+ if (lockScreenStatus != nil) {
+ [parameters setObject:lockScreenStatus forKey:@"OnLockScreenStatus"];
+ } else {
+ [parameters removeObjectForKey:@"OnLockScreenStatus"];
+ }
+}
+
+- (SDLLockScreenStatus *)lockScreenStatus {
+ NSObject* obj = [parameters objectForKey:@"OnLockScreenStatus"];
+ if ([obj isKindOfClass:SDLLockScreenStatus.class]) {
+ return (SDLLockScreenStatus*)obj;
+ } else {
+ return [SDLLockScreenStatus valueOf:(NSString*)obj];
+ }
+}
+
+- (void)setHmiLevel:(SDLHMILevel *)hmiLevel {
+ if (hmiLevel != nil) {
+ [parameters setObject:hmiLevel forKey:@"hmilevel"];
+ } else {
+ [parameters removeObjectForKey:@"hmilevel"];
+ }
+}
+
+- (SDLHMILevel *)hmiLevel {
+ NSObject* obj = [parameters objectForKey:@"hmilevel"];
+ if ([obj isKindOfClass:SDLLockScreenStatus.class]) {
+ return (SDLHMILevel *)obj;
+ } else {
+ return [SDLHMILevel valueOf:(NSString*)obj];
+ }
+}
+
+- (void)setUserSelected:(NSNumber *)userSelected {
+ if (userSelected != nil) {
+ [parameters setObject:userSelected forKey:@"userselected"];
+ } else {
+ [parameters removeObjectForKey:@"userselected"];
+ }
+}
+
+- (NSNumber *)userSelected {
+ return [parameters objectForKey:@"userselected"];
+}
+
+- (void)setDriverDistractionStatus:(NSNumber *)driverDistractionStatus {
+ if (driverDistractionStatus != nil) {
+ [parameters setObject:driverDistractionStatus forKey:@"driverdistractionstatus"];
+ } else {
+ [parameters removeObjectForKey:@"driverdistractionstatus"];
+ }
+}
+
+- (NSNumber *)driverDistractionStatus {
+ return [parameters objectForKey:@"driverdistractionstatus"];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnPermissionsChange.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnPermissionsChange.h
new file mode 100644
index 000000000..151f5df0f
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnPermissionsChange.h
@@ -0,0 +1,15 @@
+// SDLOnPermissionsChange.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCNotification.h"
+
+@interface SDLOnPermissionsChange : SDLRPCNotification {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSMutableArray* permissionItem;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnPermissionsChange.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnPermissionsChange.m
new file mode 100644
index 000000000..140363782
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnPermissionsChange.m
@@ -0,0 +1,43 @@
+// SDLOnPermissionsChange.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLOnPermissionsChange.h"
+
+#import "SDLNames.h"
+#import "SDLPermissionItem.h"
+
+@implementation SDLOnPermissionsChange
+
+-(id) init {
+ if (self = [super initWithName:NAMES_OnPermissionsChange]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setPermissionItem:(NSMutableArray*) permissionItem {
+ if (permissionItem != nil) {
+ [parameters setObject:permissionItem forKey:NAMES_permissionItem];
+ } else {
+ [parameters removeObjectForKey:NAMES_permissionItem];
+ }
+}
+
+-(NSMutableArray*) permissionItem {
+ NSMutableArray* array = [parameters objectForKey:NAMES_permissionItem];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLPermissionItem.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLPermissionItem alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnSyncPData.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnSyncPData.h
new file mode 100644
index 000000000..a4a13948b
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnSyncPData.h
@@ -0,0 +1,16 @@
+// SDLOnSyncPData.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCNotification.h"
+
+@interface SDLOnSyncPData : SDLRPCNotification {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSString* URL;
+@property(strong) NSNumber* Timeout;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnSyncPData.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnSyncPData.m
new file mode 100644
index 000000000..f2bf755c5
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnSyncPData.m
@@ -0,0 +1,45 @@
+// SDLOnSyncPData.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLOnSyncPData.h"
+
+#import "SDLNames.h"
+
+@implementation SDLOnSyncPData
+
+-(id) init {
+ if (self = [super initWithName:NAMES_OnSyncPData]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setURL:(NSString*) URL {
+ if (URL != nil) {
+ [parameters setObject:URL forKey:NAMES_URL];
+ } else {
+ [parameters removeObjectForKey:NAMES_URL];
+ }
+}
+
+-(NSString*) URL {
+ return [parameters objectForKey:NAMES_URL];
+}
+
+-(void) setTimeout:(NSNumber*) Timeout {
+ if (Timeout != nil) {
+ [parameters setObject:Timeout forKey:NAMES_Timeout];
+ } else {
+ [parameters removeObjectForKey:NAMES_Timeout];
+ }
+}
+
+-(NSNumber*) Timeout {
+ return [parameters objectForKey:NAMES_Timeout];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnSystemRequest.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnSystemRequest.h
new file mode 100644
index 000000000..121099a70
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnSystemRequest.h
@@ -0,0 +1,23 @@
+// SDLOnSystemRequest.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCNotification.h"
+
+#import "SDLRequestType.h"
+#import "SDLFileType.h"
+
+@interface SDLOnSystemRequest : SDLRPCNotification {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLRequestType* requestType;
+@property(strong) NSString* url;
+@property(strong) NSNumber* timeout;
+@property(strong) SDLFileType* fileType;
+@property(strong) NSNumber* offset;
+@property(strong) NSNumber* length;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnSystemRequest.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnSystemRequest.m
new file mode 100644
index 000000000..a10a21a30
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnSystemRequest.m
@@ -0,0 +1,103 @@
+// SDLOnSystemRequest.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLOnSystemRequest.h"
+
+#import "SDLNames.h"
+
+@implementation SDLOnSystemRequest
+
+-(id) init {
+ if (self = [super initWithName:NAMES_OnSystemRequest]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setRequestType:(SDLRequestType*) requestType {
+ if (requestType != nil) {
+ [parameters setObject:requestType forKey:NAMES_requestType];
+ } else {
+ [parameters removeObjectForKey:NAMES_requestType];
+ }
+}
+
+-(SDLRequestType*) requestType {
+ NSObject* obj = [parameters objectForKey:NAMES_requestType];
+ if ([obj isKindOfClass:SDLRequestType.class]) {
+ return (SDLRequestType*)obj;
+ } else {
+ return [SDLRequestType valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setUrl:(NSString*) url {
+ if (url != nil) {
+ [parameters setObject:url forKey:NAMES_url];
+ } else {
+ [parameters removeObjectForKey:NAMES_url];
+ }
+}
+
+-(NSString*) url {
+ return [parameters objectForKey:NAMES_url];
+}
+
+-(void) setTimeout:(NSNumber*) timeout {
+ if (timeout != nil) {
+ [parameters setObject:timeout forKey:NAMES_timeout];
+ } else {
+ [parameters removeObjectForKey:NAMES_timeout];
+ }
+}
+
+-(NSNumber*) timeout {
+ return [parameters objectForKey:NAMES_timeout];
+}
+
+-(void) setFileType:(SDLFileType*) fileType {
+ if (fileType != nil) {
+ [parameters setObject:fileType forKey:NAMES_fileType];
+ } else {
+ [parameters removeObjectForKey:NAMES_fileType];
+ }
+}
+
+-(SDLFileType*) fileType {
+ NSObject* obj = [parameters objectForKey:NAMES_fileType];
+ if ([obj isKindOfClass:SDLFileType.class]) {
+ return (SDLFileType*)obj;
+ } else {
+ return [SDLFileType valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setOffset:(NSNumber*) offset {
+ if (offset != nil) {
+ [parameters setObject:offset forKey:NAMES_offset];
+ } else {
+ [parameters removeObjectForKey:NAMES_offset];
+ }
+}
+
+-(NSNumber*) offset {
+ return [parameters objectForKey:NAMES_offset];
+}
+
+-(void) setLength:(NSNumber*) length {
+ if (length != nil) {
+ [parameters setObject:length forKey:NAMES_length];
+ } else {
+ [parameters removeObjectForKey:NAMES_length];
+ }
+}
+
+-(NSNumber*) length {
+ return [parameters objectForKey:NAMES_length];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnTBTClientState.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnTBTClientState.h
new file mode 100644
index 000000000..c48f5c141
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnTBTClientState.h
@@ -0,0 +1,17 @@
+// SDLOnTBTClientState.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCNotification.h"
+
+#import "SDLTBTState.h"
+
+@interface SDLOnTBTClientState : SDLRPCNotification {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLTBTState* state;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnTBTClientState.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnTBTClientState.m
new file mode 100644
index 000000000..8d58a3717
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnTBTClientState.m
@@ -0,0 +1,38 @@
+// SDLOnTBTClientState.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLOnTBTClientState.h"
+
+#import "SDLNames.h"
+
+@implementation SDLOnTBTClientState
+
+-(id) init {
+ if (self = [super initWithName:NAMES_OnTBTClientState]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setState:(SDLTBTState*) state {
+ if (state != nil) {
+ [parameters setObject:state forKey:NAMES_state];
+ } else {
+ [parameters removeObjectForKey:NAMES_state];
+ }
+}
+
+-(SDLTBTState*) state {
+ NSObject* obj = [parameters objectForKey:NAMES_state];
+ if ([obj isKindOfClass:SDLTBTState.class]) {
+ return (SDLTBTState*)obj;
+ } else {
+ return [SDLTBTState valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnTouchEvent.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnTouchEvent.h
new file mode 100644
index 000000000..31b2a38a7
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnTouchEvent.h
@@ -0,0 +1,18 @@
+// SDLOnTouchEvent.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCNotification.h"
+
+#import "SDLTouchType.h"
+
+@interface SDLOnTouchEvent : SDLRPCNotification {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLTouchType* type;
+@property(strong) NSMutableArray* event;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnTouchEvent.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnTouchEvent.m
new file mode 100644
index 000000000..e27305801
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnTouchEvent.m
@@ -0,0 +1,60 @@
+// SDLOnTouchEvent.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLOnTouchEvent.h"
+
+#import "SDLNames.h"
+#import "SDLTouchEvent.h"
+
+@implementation SDLOnTouchEvent
+
+-(id) init {
+ if (self = [super initWithName:NAMES_OnTouchEvent]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setType:(SDLTouchType*) type {
+ if (type != nil) {
+ [parameters setObject:type forKey:NAMES_type];
+ } else {
+ [parameters removeObjectForKey:NAMES_type];
+ }
+}
+
+-(SDLTouchType*) type {
+ NSObject* obj = [parameters objectForKey:NAMES_type];
+ if ([obj isKindOfClass:SDLTouchType.class]) {
+ return (SDLTouchType*)obj;
+ } else {
+ return [SDLTouchType valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setEvent:(NSMutableArray*) event {
+ if (event != nil) {
+ [parameters setObject:event forKey:NAMES_event];
+ } else {
+ [parameters removeObjectForKey:NAMES_event];
+ }
+}
+
+-(NSMutableArray*) event {
+ NSMutableArray* array = [parameters objectForKey:NAMES_event];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLTouchEvent.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLTouchEvent alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnVehicleData.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnVehicleData.h
new file mode 100644
index 000000000..9ae436207
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnVehicleData.h
@@ -0,0 +1,55 @@
+// SDLOnVehicleData.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCNotification.h"
+
+#import "SDLGPSData.h"
+#import "SDLComponentVolumeStatus.h"
+#import "SDLPRNDL.h"
+#import "SDLTireStatus.h"
+#import "SDLBeltStatus.h"
+#import "SDLBodyInformation.h"
+#import "SDLDeviceStatus.h"
+#import "SDLVehicleDataEventStatus.h"
+#import "SDLWiperStatus.h"
+#import "SDLHeadLampStatus.h"
+#import "SDLECallInfo.h"
+#import "SDLAirbagStatus.h"
+#import "SDLEmergencyEvent.h"
+#import "SDLClusterModeStatus.h"
+#import "SDLMyKey.h"
+
+@interface SDLOnVehicleData : SDLRPCNotification {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLGPSData* gps;
+@property(strong) NSNumber* speed;
+@property(strong) NSNumber* rpm;
+@property(strong) NSNumber* fuelLevel;
+@property(strong) SDLComponentVolumeStatus* fuelLevel_State;
+@property(strong) NSNumber* instantFuelConsumption;
+@property(strong) NSNumber* externalTemperature;
+@property(strong) NSString* vin;
+@property(strong) SDLPRNDL* prndl;
+@property(strong) SDLTireStatus* tirePressure;
+@property(strong) NSNumber* odometer;
+@property(strong) SDLBeltStatus* beltStatus;
+@property(strong) SDLBodyInformation* bodyInformation;
+@property(strong) SDLDeviceStatus* deviceStatus;
+@property(strong) SDLVehicleDataEventStatus* driverBraking;
+@property(strong) SDLWiperStatus* wiperStatus;
+@property(strong) SDLHeadLampStatus* headLampStatus;
+@property(strong) NSNumber* engineTorque;
+@property(strong) NSNumber* accPedalPosition;
+@property(strong) NSNumber* steeringWheelAngle;
+@property(strong) SDLECallInfo* eCallInfo;
+@property(strong) SDLAirbagStatus* airbagStatus;
+@property(strong) SDLEmergencyEvent* emergencyEvent;
+@property(strong) SDLClusterModeStatus* clusterModeStatus;
+@property(strong) SDLMyKey* myKey;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnVehicleData.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnVehicleData.m
new file mode 100644
index 000000000..0a6776944
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLOnVehicleData.m
@@ -0,0 +1,396 @@
+// SDLOnVehicleData.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLOnVehicleData.h"
+
+#import "SDLNames.h"
+
+@implementation SDLOnVehicleData
+
+-(id) init {
+ if (self = [super initWithName:NAMES_OnVehicleData]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setGps:(SDLGPSData*) gps {
+ if (gps != nil) {
+ [parameters setObject:gps forKey:NAMES_gps];
+ } else {
+ [parameters removeObjectForKey:NAMES_gps];
+ }
+}
+
+-(SDLGPSData*) gps {
+ NSObject* obj = [parameters objectForKey:NAMES_gps];
+ if ([obj isKindOfClass:SDLGPSData.class]) {
+ return (SDLGPSData*)obj;
+ } else {
+ return [[SDLGPSData alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setSpeed:(NSNumber*) speed {
+ if (speed != nil) {
+ [parameters setObject:speed forKey:NAMES_speed];
+ } else {
+ [parameters removeObjectForKey:NAMES_speed];
+ }
+}
+
+-(NSNumber*) speed {
+ return [parameters objectForKey:NAMES_speed];
+}
+
+-(void) setRpm:(NSNumber*) rpm {
+ if (rpm != nil) {
+ [parameters setObject:rpm forKey:NAMES_rpm];
+ } else {
+ [parameters removeObjectForKey:NAMES_rpm];
+ }
+}
+
+-(NSNumber*) rpm {
+ return [parameters objectForKey:NAMES_rpm];
+}
+
+-(void) setFuelLevel:(NSNumber*) fuelLevel {
+ if (fuelLevel != nil) {
+ [parameters setObject:fuelLevel forKey:NAMES_fuelLevel];
+ } else {
+ [parameters removeObjectForKey:NAMES_fuelLevel];
+ }
+}
+
+-(NSNumber*) fuelLevel {
+ return [parameters objectForKey:NAMES_fuelLevel];
+}
+
+-(void) setFuelLevel_State:(SDLComponentVolumeStatus*) fuelLevel_State {
+ if (fuelLevel_State != nil) {
+ [parameters setObject:fuelLevel_State forKey:NAMES_fuelLevel_State];
+ } else {
+ [parameters removeObjectForKey:NAMES_fuelLevel_State];
+ }
+}
+
+-(SDLComponentVolumeStatus*) fuelLevel_State {
+ NSObject* obj = [parameters objectForKey:NAMES_fuelLevel_State];
+ if ([obj isKindOfClass:SDLComponentVolumeStatus.class]) {
+ return (SDLComponentVolumeStatus*)obj;
+ } else {
+ return [SDLComponentVolumeStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setInstantFuelConsumption:(NSNumber*) instantFuelConsumption {
+ if (instantFuelConsumption != nil) {
+ [parameters setObject:instantFuelConsumption forKey:NAMES_instantFuelConsumption];
+ } else {
+ [parameters removeObjectForKey:NAMES_instantFuelConsumption];
+ }
+}
+
+-(NSNumber*) instantFuelConsumption {
+ return [parameters objectForKey:NAMES_instantFuelConsumption];
+}
+
+-(void) setExternalTemperature:(NSNumber*) externalTemperature {
+ if (externalTemperature != nil) {
+ [parameters setObject:externalTemperature forKey:NAMES_externalTemperature];
+ } else {
+ [parameters removeObjectForKey:NAMES_externalTemperature];
+ }
+}
+
+-(NSNumber*) externalTemperature {
+ return [parameters objectForKey:NAMES_externalTemperature];
+}
+
+-(void) setVin:(NSString*) vin {
+ if (vin != nil) {
+ [parameters setObject:vin forKey:NAMES_vin];
+ } else {
+ [parameters removeObjectForKey:NAMES_vin];
+ }
+}
+
+-(NSString*) vin {
+ return [parameters objectForKey:NAMES_vin];
+}
+
+-(void) setPrndl:(SDLPRNDL*) prndl {
+ if (prndl != nil) {
+ [parameters setObject:prndl forKey:NAMES_prndl];
+ } else {
+ [parameters removeObjectForKey:NAMES_prndl];
+ }
+}
+
+-(SDLPRNDL*) prndl {
+ NSObject* obj = [parameters objectForKey:NAMES_prndl];
+ if ([obj isKindOfClass:SDLPRNDL.class]) {
+ return (SDLPRNDL*)obj;
+ } else {
+ return [SDLPRNDL valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setTirePressure:(SDLTireStatus*) tirePressure {
+ if (tirePressure != nil) {
+ [parameters setObject:tirePressure forKey:NAMES_tirePressure];
+ } else {
+ [parameters removeObjectForKey:NAMES_tirePressure];
+ }
+}
+
+-(SDLTireStatus*) tirePressure {
+ NSObject* obj = [parameters objectForKey:NAMES_tirePressure];
+ if ([obj isKindOfClass:SDLTireStatus.class]) {
+ return (SDLTireStatus*)obj;
+ } else {
+ return [[SDLTireStatus alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setOdometer:(NSNumber*) odometer {
+ if (odometer != nil) {
+ [parameters setObject:odometer forKey:NAMES_odometer];
+ } else {
+ [parameters removeObjectForKey:NAMES_odometer];
+ }
+}
+
+-(NSNumber*) odometer {
+ return [parameters objectForKey:NAMES_odometer];
+}
+
+-(void) setBeltStatus:(SDLBeltStatus*) beltStatus {
+ if (beltStatus != nil) {
+ [parameters setObject:beltStatus forKey:NAMES_beltStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_beltStatus];
+ }
+}
+
+-(SDLBeltStatus*) beltStatus {
+ NSObject* obj = [parameters objectForKey:NAMES_beltStatus];
+ if ([obj isKindOfClass:SDLBeltStatus.class]) {
+ return (SDLBeltStatus*)obj;
+ } else {
+ return [[SDLBeltStatus alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setBodyInformation:(SDLBodyInformation*) bodyInformation {
+ if (bodyInformation != nil) {
+ [parameters setObject:bodyInformation forKey:NAMES_bodyInformation];
+ } else {
+ [parameters removeObjectForKey:NAMES_bodyInformation];
+ }
+}
+
+-(SDLBodyInformation*) bodyInformation {
+ NSObject* obj = [parameters objectForKey:NAMES_bodyInformation];
+ if ([obj isKindOfClass:SDLBodyInformation.class]) {
+ return (SDLBodyInformation*)obj;
+ } else {
+ return [[SDLBodyInformation alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setDeviceStatus:(SDLDeviceStatus*) deviceStatus {
+ if (deviceStatus != nil) {
+ [parameters setObject:deviceStatus forKey:NAMES_deviceStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_deviceStatus];
+ }
+}
+
+-(SDLDeviceStatus*) deviceStatus {
+ NSObject* obj = [parameters objectForKey:NAMES_deviceStatus];
+ if ([obj isKindOfClass:SDLDeviceStatus.class]) {
+ return (SDLDeviceStatus*)obj;
+ } else {
+ return [[SDLDeviceStatus alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setDriverBraking:(SDLVehicleDataEventStatus*) driverBraking {
+ if (driverBraking != nil) {
+ [parameters setObject:driverBraking forKey:NAMES_driverBraking];
+ } else {
+ [parameters removeObjectForKey:NAMES_driverBraking];
+ }
+}
+
+-(SDLVehicleDataEventStatus*) driverBraking {
+ NSObject* obj = [parameters objectForKey:NAMES_driverBraking];
+ if ([obj isKindOfClass:SDLVehicleDataEventStatus.class]) {
+ return (SDLVehicleDataEventStatus*)obj;
+ } else {
+ return [SDLVehicleDataEventStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setWiperStatus:(SDLWiperStatus*) wiperStatus {
+ if (wiperStatus != nil) {
+ [parameters setObject:wiperStatus forKey:NAMES_wiperStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_wiperStatus];
+ }
+}
+
+-(SDLWiperStatus*) wiperStatus {
+ NSObject* obj = [parameters objectForKey:NAMES_wiperStatus];
+ if ([obj isKindOfClass:SDLWiperStatus.class]) {
+ return (SDLWiperStatus*)obj;
+ } else {
+ return [SDLWiperStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setHeadLampStatus:(SDLHeadLampStatus*) headLampStatus {
+ if (headLampStatus != nil) {
+ [parameters setObject:headLampStatus forKey:NAMES_headLampStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_headLampStatus];
+ }
+}
+
+-(SDLHeadLampStatus*) headLampStatus {
+ NSObject* obj = [parameters objectForKey:NAMES_headLampStatus];
+ if ([obj isKindOfClass:SDLHeadLampStatus.class]) {
+ return (SDLHeadLampStatus*)obj;
+ } else {
+ return [[SDLHeadLampStatus alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setEngineTorque:(NSNumber*) engineTorque {
+ if (engineTorque != nil) {
+ [parameters setObject:engineTorque forKey:NAMES_engineTorque];
+ } else {
+ [parameters removeObjectForKey:NAMES_engineTorque];
+ }
+}
+
+-(NSNumber*) engineTorque {
+ return [parameters objectForKey:NAMES_engineTorque];
+}
+
+-(void) setAccPedalPosition:(NSNumber*) accPedalPosition {
+ if (accPedalPosition != nil) {
+ [parameters setObject:accPedalPosition forKey:NAMES_accPedalPosition];
+ } else {
+ [parameters removeObjectForKey:NAMES_accPedalPosition];
+ }
+}
+
+-(NSNumber*) accPedalPosition {
+ return [parameters objectForKey:NAMES_accPedalPosition];
+}
+
+-(void) setSteeringWheelAngle:(NSNumber*) steeringWheelAngle {
+ if (steeringWheelAngle != nil) {
+ [parameters setObject:steeringWheelAngle forKey:NAMES_steeringWheelAngle];
+ } else {
+ [parameters removeObjectForKey:NAMES_steeringWheelAngle];
+ }
+}
+
+-(NSNumber*) steeringWheelAngle {
+ return [parameters objectForKey:NAMES_steeringWheelAngle];
+}
+
+-(void) setECallInfo:(SDLECallInfo*) eCallInfo {
+ if (eCallInfo != nil) {
+ [parameters setObject:eCallInfo forKey:NAMES_eCallInfo];
+ } else {
+ [parameters removeObjectForKey:NAMES_eCallInfo];
+ }
+}
+
+-(SDLECallInfo*) eCallInfo {
+ NSObject* obj = [parameters objectForKey:NAMES_eCallInfo];
+ if ([obj isKindOfClass:SDLECallInfo.class]) {
+ return (SDLECallInfo*)obj;
+ } else {
+ return [[SDLECallInfo alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setAirbagStatus:(SDLAirbagStatus*) airbagStatus {
+ if (airbagStatus != nil) {
+ [parameters setObject:airbagStatus forKey:NAMES_airbagStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_airbagStatus];
+ }
+}
+
+-(SDLAirbagStatus*) airbagStatus {
+ NSObject* obj = [parameters objectForKey:NAMES_airbagStatus];
+ if ([obj isKindOfClass:SDLAirbagStatus.class]) {
+ return (SDLAirbagStatus*)obj;
+ } else {
+ return [[SDLAirbagStatus alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setEmergencyEvent:(SDLEmergencyEvent*) emergencyEvent {
+ if (emergencyEvent != nil) {
+ [parameters setObject:emergencyEvent forKey:NAMES_emergencyEvent];
+ } else {
+ [parameters removeObjectForKey:NAMES_emergencyEvent];
+ }
+}
+
+-(SDLEmergencyEvent*) emergencyEvent {
+ NSObject* obj = [parameters objectForKey:NAMES_emergencyEvent];
+ if ([obj isKindOfClass:SDLEmergencyEvent.class]) {
+ return (SDLEmergencyEvent*)obj;
+ } else {
+ return [[SDLEmergencyEvent alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setClusterModeStatus:(SDLClusterModeStatus*) clusterModeStatus {
+ if (clusterModeStatus != nil) {
+ [parameters setObject:clusterModeStatus forKey:NAMES_clusterModeStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_clusterModeStatus];
+ }
+}
+
+-(SDLClusterModeStatus*) clusterModeStatus {
+ NSObject* obj = [parameters objectForKey:NAMES_clusterModeStatus];
+ if ([obj isKindOfClass:SDLClusterModeStatus.class]) {
+ return (SDLClusterModeStatus*)obj;
+ } else {
+ return [[SDLClusterModeStatus alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setMyKey:(SDLMyKey*) myKey {
+ if (myKey != nil) {
+ [parameters setObject:myKey forKey:NAMES_myKey];
+ } else {
+ [parameters removeObjectForKey:NAMES_myKey];
+ }
+}
+
+-(SDLMyKey*) myKey {
+ NSObject* obj = [parameters objectForKey:NAMES_myKey];
+ if ([obj isKindOfClass:SDLMyKey.class]) {
+ return (SDLMyKey*)obj;
+ } else {
+ return [[SDLMyKey alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPRNDL.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPRNDL.h
new file mode 100644
index 000000000..63f662675
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPRNDL.h
@@ -0,0 +1,30 @@
+// SDLPRNDL.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLPRNDL : SDLEnum {}
+
++(SDLPRNDL*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLPRNDL*) PARK;
++(SDLPRNDL*) REVERSE;
++(SDLPRNDL*) NEUTRAL;
++(SDLPRNDL*) DRIVE;
++(SDLPRNDL*) SPORT;
++(SDLPRNDL*) LOWGEAR;
++(SDLPRNDL*) FIRST;
++(SDLPRNDL*) SECOND;
++(SDLPRNDL*) THIRD;
++(SDLPRNDL*) FOURTH;
++(SDLPRNDL*) FIFTH;
++(SDLPRNDL*) SIXTH;
++(SDLPRNDL*) SEVENTH;
++(SDLPRNDL*) EIGHTH;
++(SDLPRNDL*) UNKNOWN;
++(SDLPRNDL*) FAULT;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPRNDL.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPRNDL.m
new file mode 100644
index 000000000..0a628bd36
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPRNDL.m
@@ -0,0 +1,173 @@
+// SDLPRNDL.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLPRNDL.h"
+
+SDLPRNDL* SDLPRNDL_PARK = nil;
+SDLPRNDL* SDLPRNDL_REVERSE = nil;
+SDLPRNDL* SDLPRNDL_NEUTRAL = nil;
+SDLPRNDL* SDLPRNDL_DRIVE = nil;
+SDLPRNDL* SDLPRNDL_SPORT = nil;
+SDLPRNDL* SDLPRNDL_LOWGEAR = nil;
+SDLPRNDL* SDLPRNDL_FIRST = nil;
+SDLPRNDL* SDLPRNDL_SECOND = nil;
+SDLPRNDL* SDLPRNDL_THIRD = nil;
+SDLPRNDL* SDLPRNDL_FOURTH = nil;
+SDLPRNDL* SDLPRNDL_FIFTH = nil;
+SDLPRNDL* SDLPRNDL_SIXTH = nil;
+SDLPRNDL* SDLPRNDL_SEVENTH = nil;
+SDLPRNDL* SDLPRNDL_EIGHTH = nil;
+SDLPRNDL* SDLPRNDL_UNKNOWN = nil;
+SDLPRNDL* SDLPRNDL_FAULT = nil;
+
+NSMutableArray* SDLPRNDL_values = nil;
+
+@implementation SDLPRNDL
+
++(SDLPRNDL*) valueOf:(NSString*) value {
+ for (SDLPRNDL* item in SDLPRNDL.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLPRNDL_values == nil) {
+ SDLPRNDL_values = [[NSMutableArray alloc] initWithObjects:
+ SDLPRNDL.PARK,
+ SDLPRNDL.REVERSE,
+ SDLPRNDL.NEUTRAL,
+ SDLPRNDL.DRIVE,
+ SDLPRNDL.SPORT,
+ SDLPRNDL.LOWGEAR,
+ SDLPRNDL.FIRST,
+ SDLPRNDL.SECOND,
+ SDLPRNDL.THIRD,
+ SDLPRNDL.FOURTH,
+ SDLPRNDL.FIFTH,
+ SDLPRNDL.SIXTH,
+ SDLPRNDL.SEVENTH,
+ SDLPRNDL.EIGHTH,
+ SDLPRNDL.UNKNOWN,
+ SDLPRNDL.FAULT,
+ nil];
+ }
+ return SDLPRNDL_values;
+}
+
++(SDLPRNDL*) PARK {
+ if (SDLPRNDL_PARK == nil) {
+ SDLPRNDL_PARK = [[SDLPRNDL alloc] initWithValue:@"PARK"];
+ }
+ return SDLPRNDL_PARK;
+}
+
++(SDLPRNDL*) REVERSE {
+ if (SDLPRNDL_REVERSE == nil) {
+ SDLPRNDL_REVERSE = [[SDLPRNDL alloc] initWithValue:@"REVERSE"];
+ }
+ return SDLPRNDL_REVERSE;
+}
+
++(SDLPRNDL*) NEUTRAL {
+ if (SDLPRNDL_NEUTRAL == nil) {
+ SDLPRNDL_NEUTRAL = [[SDLPRNDL alloc] initWithValue:@"NEUTRAL"];
+ }
+ return SDLPRNDL_NEUTRAL;
+}
+
++(SDLPRNDL*) DRIVE {
+ if (SDLPRNDL_DRIVE == nil) {
+ SDLPRNDL_DRIVE = [[SDLPRNDL alloc] initWithValue:@"DRIVE"];
+ }
+ return SDLPRNDL_DRIVE;
+}
+
++(SDLPRNDL*) SPORT {
+ if (SDLPRNDL_SPORT == nil) {
+ SDLPRNDL_SPORT = [[SDLPRNDL alloc] initWithValue:@"SPORT"];
+ }
+ return SDLPRNDL_SPORT;
+}
+
++(SDLPRNDL*) LOWGEAR {
+ if (SDLPRNDL_LOWGEAR == nil) {
+ SDLPRNDL_LOWGEAR = [[SDLPRNDL alloc] initWithValue:@"LOWGEAR"];
+ }
+ return SDLPRNDL_LOWGEAR;
+}
+
++(SDLPRNDL*) FIRST {
+ if (SDLPRNDL_FIRST == nil) {
+ SDLPRNDL_FIRST = [[SDLPRNDL alloc] initWithValue:@"FIRST"];
+ }
+ return SDLPRNDL_FIRST;
+}
+
++(SDLPRNDL*) SECOND {
+ if (SDLPRNDL_SECOND == nil) {
+ SDLPRNDL_SECOND = [[SDLPRNDL alloc] initWithValue:@"SECOND"];
+ }
+ return SDLPRNDL_SECOND;
+}
+
++(SDLPRNDL*) THIRD {
+ if (SDLPRNDL_THIRD == nil) {
+ SDLPRNDL_THIRD = [[SDLPRNDL alloc] initWithValue:@"THIRD"];
+ }
+ return SDLPRNDL_THIRD;
+}
+
++(SDLPRNDL*) FOURTH {
+ if (SDLPRNDL_FOURTH == nil) {
+ SDLPRNDL_FOURTH = [[SDLPRNDL alloc] initWithValue:@"FOURTH"];
+ }
+ return SDLPRNDL_FOURTH;
+}
+
++(SDLPRNDL*) FIFTH {
+ if (SDLPRNDL_FIFTH == nil) {
+ SDLPRNDL_FIFTH = [[SDLPRNDL alloc] initWithValue:@"FIFTH"];
+ }
+ return SDLPRNDL_FIFTH;
+}
+
++(SDLPRNDL*) SIXTH {
+ if (SDLPRNDL_SIXTH == nil) {
+ SDLPRNDL_SIXTH = [[SDLPRNDL alloc] initWithValue:@"SIXTH"];
+ }
+ return SDLPRNDL_SIXTH;
+}
+
++(SDLPRNDL*) SEVENTH {
+ if (SDLPRNDL_SEVENTH == nil) {
+ SDLPRNDL_SEVENTH = [[SDLPRNDL alloc] initWithValue:@"SEVENTH"];
+ }
+ return SDLPRNDL_SEVENTH;
+}
+
++(SDLPRNDL*) EIGHTH {
+ if (SDLPRNDL_EIGHTH == nil) {
+ SDLPRNDL_EIGHTH = [[SDLPRNDL alloc] initWithValue:@"EIGHTH"];
+ }
+ return SDLPRNDL_EIGHTH;
+}
+
++(SDLPRNDL*) UNKNOWN {
+ if (SDLPRNDL_UNKNOWN == nil) {
+ SDLPRNDL_UNKNOWN = [[SDLPRNDL alloc] initWithValue:@"UNKNOWN"];
+ }
+ return SDLPRNDL_UNKNOWN;
+}
+
++(SDLPRNDL*) FAULT {
+ if (SDLPRNDL_FAULT == nil) {
+ SDLPRNDL_FAULT = [[SDLPRNDL alloc] initWithValue:@"FAULT"];
+ }
+ return SDLPRNDL_FAULT;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLParameterPermissions.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLParameterPermissions.h
new file mode 100644
index 000000000..8bf5a6046
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLParameterPermissions.h
@@ -0,0 +1,16 @@
+// SDLParameterPermissions.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+@interface SDLParameterPermissions : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSMutableArray* allowed;
+@property(strong) NSMutableArray* userDisallowed;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLParameterPermissions.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLParameterPermissions.m
new file mode 100644
index 000000000..ab934deb7
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLParameterPermissions.m
@@ -0,0 +1,45 @@
+// SDLParameterPermissions.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLParameterPermissions.h"
+
+#import "SDLNames.h"
+
+@implementation SDLParameterPermissions
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setAllowed:(NSMutableArray*) allowed {
+ if (allowed != nil) {
+ [store setObject:allowed forKey:NAMES_allowed];
+ } else {
+ [store removeObjectForKey:NAMES_allowed];
+ }
+}
+
+-(NSMutableArray*) allowed {
+ return [store objectForKey:NAMES_allowed];
+}
+
+-(void) setUserDisallowed:(NSMutableArray*) userDisallowed {
+ if (userDisallowed != nil) {
+ [store setObject:userDisallowed forKey:NAMES_userDisallowed];
+ } else {
+ [store removeObjectForKey:NAMES_userDisallowed];
+ }
+}
+
+-(NSMutableArray*) userDisallowed {
+ return [store objectForKey:NAMES_userDisallowed];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformAudioPassThru.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformAudioPassThru.h
new file mode 100644
index 000000000..1329bd9a8
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformAudioPassThru.h
@@ -0,0 +1,26 @@
+// SDLPerformAudioPassThru.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+#import "SDLSamplingRate.h"
+#import "SDLBitsPerSample.h"
+#import "SDLAudioType.h"
+
+@interface SDLPerformAudioPassThru : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSMutableArray* initialPrompt;
+@property(strong) NSString* audioPassThruDisplayText1;
+@property(strong) NSString* audioPassThruDisplayText2;
+@property(strong) SDLSamplingRate* samplingRate;
+@property(strong) NSNumber* maxDuration;
+@property(strong) SDLBitsPerSample* bitsPerSample;
+@property(strong) SDLAudioType* audioType;
+@property(strong) NSNumber* muteAudio;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformAudioPassThru.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformAudioPassThru.m
new file mode 100644
index 000000000..21f9cee62
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformAudioPassThru.m
@@ -0,0 +1,142 @@
+// SDLPerformAudioPassThru.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLPerformAudioPassThru.h"
+
+#import "SDLNames.h"
+#import "SDLTTSChunk.h"
+
+@implementation SDLPerformAudioPassThru
+
+-(id) init {
+ if (self = [super initWithName:NAMES_PerformAudioPassThru]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setInitialPrompt:(NSMutableArray*) initialPrompt {
+ if (initialPrompt != nil) {
+ [parameters setObject:initialPrompt forKey:NAMES_initialPrompt];
+ } else {
+ [parameters removeObjectForKey:NAMES_initialPrompt];
+ }
+}
+
+-(NSMutableArray*) initialPrompt {
+ NSMutableArray* array = [parameters objectForKey:NAMES_initialPrompt];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLTTSChunk.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLTTSChunk alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+-(void) setAudioPassThruDisplayText1:(NSString*) audioPassThruDisplayText1 {
+ if (audioPassThruDisplayText1 != nil) {
+ [parameters setObject:audioPassThruDisplayText1 forKey:NAMES_audioPassThruDisplayText1];
+ } else {
+ [parameters removeObjectForKey:NAMES_audioPassThruDisplayText1];
+ }
+}
+
+-(NSString*) audioPassThruDisplayText1 {
+ return [parameters objectForKey:NAMES_audioPassThruDisplayText1];
+}
+
+-(void) setAudioPassThruDisplayText2:(NSString*) audioPassThruDisplayText2 {
+ if (audioPassThruDisplayText2 != nil) {
+ [parameters setObject:audioPassThruDisplayText2 forKey:NAMES_audioPassThruDisplayText2];
+ } else {
+ [parameters removeObjectForKey:NAMES_audioPassThruDisplayText2];
+ }
+}
+
+-(NSString*) audioPassThruDisplayText2 {
+ return [parameters objectForKey:NAMES_audioPassThruDisplayText2];
+}
+
+-(void) setSamplingRate:(SDLSamplingRate*) samplingRate {
+ if (samplingRate != nil) {
+ [parameters setObject:samplingRate forKey:NAMES_samplingRate];
+ } else {
+ [parameters removeObjectForKey:NAMES_samplingRate];
+ }
+}
+
+-(SDLSamplingRate*) samplingRate {
+ NSObject* obj = [parameters objectForKey:NAMES_samplingRate];
+ if ([obj isKindOfClass:SDLSamplingRate.class]) {
+ return (SDLSamplingRate*)obj;
+ } else {
+ return [SDLSamplingRate valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setMaxDuration:(NSNumber*) maxDuration {
+ if (maxDuration != nil) {
+ [parameters setObject:maxDuration forKey:NAMES_maxDuration];
+ } else {
+ [parameters removeObjectForKey:NAMES_maxDuration];
+ }
+}
+
+-(NSNumber*) maxDuration {
+ return [parameters objectForKey:NAMES_maxDuration];
+}
+
+-(void) setBitsPerSample:(SDLBitsPerSample*) bitsPerSample {
+ if (bitsPerSample != nil) {
+ [parameters setObject:bitsPerSample forKey:NAMES_bitsPerSample];
+ } else {
+ [parameters removeObjectForKey:NAMES_bitsPerSample];
+ }
+}
+
+-(SDLBitsPerSample*) bitsPerSample {
+ NSObject* obj = [parameters objectForKey:NAMES_bitsPerSample];
+ if ([obj isKindOfClass:SDLBitsPerSample.class]) {
+ return (SDLBitsPerSample*)obj;
+ } else {
+ return [SDLBitsPerSample valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setAudioType:(SDLAudioType*) audioType {
+ if (audioType != nil) {
+ [parameters setObject:audioType forKey:NAMES_audioType];
+ } else {
+ [parameters removeObjectForKey:NAMES_audioType];
+ }
+}
+
+-(SDLAudioType*) audioType {
+ NSObject* obj = [parameters objectForKey:NAMES_audioType];
+ if ([obj isKindOfClass:SDLAudioType.class]) {
+ return (SDLAudioType*)obj;
+ } else {
+ return [SDLAudioType valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setMuteAudio:(NSNumber*) muteAudio {
+ if (muteAudio != nil) {
+ [parameters setObject:muteAudio forKey:NAMES_muteAudio];
+ } else {
+ [parameters removeObjectForKey:NAMES_muteAudio];
+ }
+}
+
+-(NSNumber*) muteAudio {
+ return [parameters objectForKey:NAMES_muteAudio];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformAudioPassThruResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformAudioPassThruResponse.h
new file mode 100644
index 000000000..fb1a733c0
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformAudioPassThruResponse.h
@@ -0,0 +1,13 @@
+// SDLPerformAudioPassThruResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLPerformAudioPassThruResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformAudioPassThruResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformAudioPassThruResponse.m
new file mode 100644
index 000000000..73036a19f
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformAudioPassThruResponse.m
@@ -0,0 +1,21 @@
+// SDLPerformAudioPassThruResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLPerformAudioPassThruResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLPerformAudioPassThruResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_PerformAudioPassThru]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformInteraction.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformInteraction.h
new file mode 100644
index 000000000..4236eb9d4
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformInteraction.h
@@ -0,0 +1,26 @@
+// SDLPerformInteraction.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+#import "SDLInteractionMode.h"
+#import "SDLLayoutMode.h"
+
+@interface SDLPerformInteraction : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSString* initialText;
+@property(strong) NSMutableArray* initialPrompt;
+@property(strong) SDLInteractionMode* interactionMode;
+@property(strong) NSMutableArray* interactionChoiceSetIDList;
+@property(strong) NSMutableArray* helpPrompt;
+@property(strong) NSMutableArray* timeoutPrompt;
+@property(strong) NSNumber* timeout;
+@property(strong) NSMutableArray* vrHelp;
+@property(strong) SDLLayoutMode* interactionLayout;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformInteraction.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformInteraction.m
new file mode 100644
index 000000000..ff26b38b9
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformInteraction.m
@@ -0,0 +1,177 @@
+// SDLPerformInteraction.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLPerformInteraction.h"
+
+#import "SDLNames.h"
+#import "SDLTTSChunk.h"
+#import "SDLVrHelpItem.h"
+
+@implementation SDLPerformInteraction
+
+-(id) init {
+ if (self = [super initWithName:NAMES_PerformInteraction]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setInitialText:(NSString*) initialText {
+ if (initialText != nil) {
+ [parameters setObject:initialText forKey:NAMES_initialText];
+ } else {
+ [parameters removeObjectForKey:NAMES_initialText];
+ }
+}
+
+-(NSString*) initialText {
+ return [parameters objectForKey:NAMES_initialText];
+}
+
+-(void) setInitialPrompt:(NSMutableArray*) initialPrompt {
+ if (initialPrompt != nil) {
+ [parameters setObject:initialPrompt forKey:NAMES_initialPrompt];
+ } else {
+ [parameters removeObjectForKey:NAMES_initialPrompt];
+ }
+}
+
+-(NSMutableArray*) initialPrompt {
+ NSMutableArray* array = [parameters objectForKey:NAMES_initialPrompt];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLTTSChunk.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLTTSChunk alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+-(void) setInteractionMode:(SDLInteractionMode*) interactionMode {
+ if (interactionMode != nil) {
+ [parameters setObject:interactionMode forKey:NAMES_interactionMode];
+ } else {
+ [parameters removeObjectForKey:NAMES_interactionMode];
+ }
+}
+
+-(SDLInteractionMode*) interactionMode {
+ NSObject* obj = [parameters objectForKey:NAMES_interactionMode];
+ if ([obj isKindOfClass:SDLInteractionMode.class]) {
+ return (SDLInteractionMode*)obj;
+ } else {
+ return [SDLInteractionMode valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setInteractionChoiceSetIDList:(NSMutableArray*) interactionChoiceSetIDList {
+ if (interactionChoiceSetIDList != nil) {
+ [parameters setObject:interactionChoiceSetIDList forKey:NAMES_interactionChoiceSetIDList];
+ } else {
+ [parameters removeObjectForKey:NAMES_interactionChoiceSetIDList];
+ }
+}
+
+-(NSMutableArray*) interactionChoiceSetIDList {
+ return [parameters objectForKey:NAMES_interactionChoiceSetIDList];
+}
+
+-(void) setHelpPrompt:(NSMutableArray*) helpPrompt {
+ if (helpPrompt != nil) {
+ [parameters setObject:helpPrompt forKey:NAMES_helpPrompt];
+ } else {
+ [parameters removeObjectForKey:NAMES_helpPrompt];
+ }
+}
+
+-(NSMutableArray*) helpPrompt {
+ NSMutableArray* array = [parameters objectForKey:NAMES_helpPrompt];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLTTSChunk.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLTTSChunk alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+-(void) setTimeoutPrompt:(NSMutableArray*) timeoutPrompt {
+ if (timeoutPrompt != nil) {
+ [parameters setObject:timeoutPrompt forKey:NAMES_timeoutPrompt];
+ } else {
+ [parameters removeObjectForKey:NAMES_timeoutPrompt];
+ }
+}
+
+-(NSMutableArray*) timeoutPrompt {
+ NSMutableArray* array = [parameters objectForKey:NAMES_timeoutPrompt];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLTTSChunk.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLTTSChunk alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+-(void) setTimeout:(NSNumber*) timeout {
+ if (timeout != nil) {
+ [parameters setObject:timeout forKey:NAMES_timeout];
+ } else {
+ [parameters removeObjectForKey:NAMES_timeout];
+ }
+}
+
+-(NSNumber*) timeout {
+ return [parameters objectForKey:NAMES_timeout];
+}
+
+-(void) setVrHelp:(NSMutableArray*) vrHelp {
+ if (vrHelp != nil) {
+ [parameters setObject:vrHelp forKey:NAMES_vrHelp];
+ } else {
+ [parameters removeObjectForKey:NAMES_vrHelp];
+ }
+}
+
+-(NSMutableArray*) vrHelp {
+ NSMutableArray* array = [parameters objectForKey:NAMES_vrHelp];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLVrHelpItem.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLVrHelpItem alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+-(void) setInteractionLayout:(SDLLayoutMode*) interactionLayout {
+ if (interactionLayout != nil) {
+ [parameters setObject:interactionLayout forKey:NAMES_interactionLayout];
+ } else {
+ [parameters removeObjectForKey:NAMES_interactionLayout];
+ }
+}
+
+-(SDLLayoutMode*) interactionLayout {
+ NSObject* obj = [parameters objectForKey:NAMES_interactionLayout];
+ if ([obj isKindOfClass:SDLLayoutMode.class]) {
+ return (SDLLayoutMode*)obj;
+ } else {
+ return [SDLLayoutMode valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformInteractionResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformInteractionResponse.h
new file mode 100644
index 000000000..abfa1569d
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformInteractionResponse.h
@@ -0,0 +1,19 @@
+// SDLPerformInteractionResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+#import "SDLTriggerSource.h"
+
+@interface SDLPerformInteractionResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* choiceID;
+@property(strong) NSString* manualTextEntry;
+@property(strong) SDLTriggerSource* triggerSource;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformInteractionResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformInteractionResponse.m
new file mode 100644
index 000000000..a6c772a6b
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPerformInteractionResponse.m
@@ -0,0 +1,62 @@
+// SDLPerformInteractionResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLPerformInteractionResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLPerformInteractionResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_PerformInteraction]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setChoiceID:(NSNumber*) choiceID {
+ if (choiceID != nil) {
+ [parameters setObject:choiceID forKey:NAMES_choiceID];
+ } else {
+ [parameters removeObjectForKey:NAMES_choiceID];
+ }
+}
+
+-(NSNumber*) choiceID {
+ return [parameters objectForKey:NAMES_choiceID];
+}
+
+-(void) setManualTextEntry:(NSString*) manualTextEntry {
+ if (manualTextEntry != nil) {
+ [parameters setObject:manualTextEntry forKey:NAMES_manualTextEntry];
+ } else {
+ [parameters removeObjectForKey:NAMES_manualTextEntry];
+ }
+}
+
+-(NSString*) manualTextEntry {
+ return [parameters objectForKey:NAMES_manualTextEntry];
+}
+
+-(void) setTriggerSource:(SDLTriggerSource*) triggerSource {
+ if (triggerSource != nil) {
+ [parameters setObject:triggerSource forKey:NAMES_triggerSource];
+ } else {
+ [parameters removeObjectForKey:NAMES_triggerSource];
+ }
+}
+
+-(SDLTriggerSource*) triggerSource {
+ NSObject* obj = [parameters objectForKey:NAMES_triggerSource];
+ if ([obj isKindOfClass:SDLTriggerSource.class]) {
+ return (SDLTriggerSource*)obj;
+ } else {
+ return [SDLTriggerSource valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPermissionItem.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPermissionItem.h
new file mode 100644
index 000000000..d07b5bce4
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPermissionItem.h
@@ -0,0 +1,20 @@
+// SDLPermissionItem.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLHMIPermissions.h"
+#import "SDLParameterPermissions.h"
+
+@interface SDLPermissionItem : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSString* rpcName;
+@property(strong) SDLHMIPermissions* hmiPermissions;
+@property(strong) SDLParameterPermissions* parameterPermissions;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPermissionItem.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPermissionItem.m
new file mode 100644
index 000000000..9aeb7d129
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPermissionItem.m
@@ -0,0 +1,67 @@
+// SDLPermissionItem.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLPermissionItem.h"
+
+#import "SDLNames.h"
+
+@implementation SDLPermissionItem
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setRpcName:(NSString*) rpcName {
+ if (rpcName != nil) {
+ [store setObject:rpcName forKey:NAMES_rpcName];
+ } else {
+ [store removeObjectForKey:NAMES_rpcName];
+ }
+}
+
+-(NSString*) rpcName {
+ return [store objectForKey:NAMES_rpcName];
+}
+
+-(void) setHmiPermissions:(SDLHMIPermissions*) hmiPermissions {
+ if (hmiPermissions != nil) {
+ [store setObject:hmiPermissions forKey:NAMES_hmiPermissions];
+ } else {
+ [store removeObjectForKey:NAMES_hmiPermissions];
+ }
+}
+
+-(SDLHMIPermissions*) hmiPermissions {
+ NSObject* obj = [store objectForKey:NAMES_hmiPermissions];
+ if ([obj isKindOfClass:SDLHMIPermissions.class]) {
+ return (SDLHMIPermissions*)obj;
+ } else {
+ return [[SDLHMIPermissions alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setParameterPermissions:(SDLParameterPermissions*) parameterPermissions {
+ if (parameterPermissions != nil) {
+ [store setObject:parameterPermissions forKey:NAMES_parameterPermissions];
+ } else {
+ [store removeObjectForKey:NAMES_parameterPermissions];
+ }
+}
+
+-(SDLParameterPermissions*) parameterPermissions {
+ NSObject* obj = [store objectForKey:NAMES_parameterPermissions];
+ if ([obj isKindOfClass:SDLParameterPermissions.class]) {
+ return (SDLParameterPermissions*)obj;
+ } else {
+ return [[SDLParameterPermissions alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPermissionStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPermissionStatus.h
new file mode 100644
index 000000000..7c8155a06
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPermissionStatus.h
@@ -0,0 +1,18 @@
+// SDLPermissionStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLPermissionStatus : SDLEnum {}
+
++(SDLPermissionStatus*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLPermissionStatus*) ALLOWED;
++(SDLPermissionStatus*) DISALLOWED;
++(SDLPermissionStatus*) USER_DISALLOWED;
++(SDLPermissionStatus*) USER_CONSENT_PENDING;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPermissionStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPermissionStatus.m
new file mode 100644
index 000000000..edf6f85bb
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPermissionStatus.m
@@ -0,0 +1,65 @@
+// SDLPermissionStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLPermissionStatus.h"
+
+SDLPermissionStatus* SDLPermissionStatus_ALLOWED = nil;
+SDLPermissionStatus* SDLPermissionStatus_DISALLOWED = nil;
+SDLPermissionStatus* SDLPermissionStatus_USER_DISALLOWED = nil;
+SDLPermissionStatus* SDLPermissionStatus_USER_CONSENT_PENDING = nil;
+
+NSMutableArray* SDLPermissionStatus_values = nil;
+
+@implementation SDLPermissionStatus
+
++(SDLPermissionStatus*) valueOf:(NSString*) value {
+ for (SDLPermissionStatus* item in SDLPermissionStatus.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLPermissionStatus_values == nil) {
+ SDLPermissionStatus_values = [[NSMutableArray alloc] initWithObjects:
+ SDLPermissionStatus.ALLOWED,
+ SDLPermissionStatus.DISALLOWED,
+ SDLPermissionStatus.USER_DISALLOWED,
+ SDLPermissionStatus.USER_CONSENT_PENDING,
+ nil];
+ }
+ return SDLPermissionStatus_values;
+}
+
++(SDLPermissionStatus*) ALLOWED {
+ if (SDLPermissionStatus_ALLOWED == nil) {
+ SDLPermissionStatus_ALLOWED = [[SDLPermissionStatus alloc] initWithValue:@"ALLOWED"];
+ }
+ return SDLPermissionStatus_ALLOWED;
+}
+
++(SDLPermissionStatus*) DISALLOWED {
+ if (SDLPermissionStatus_DISALLOWED == nil) {
+ SDLPermissionStatus_DISALLOWED = [[SDLPermissionStatus alloc] initWithValue:@"DISALLOWED"];
+ }
+ return SDLPermissionStatus_DISALLOWED;
+}
+
++(SDLPermissionStatus*) USER_DISALLOWED {
+ if (SDLPermissionStatus_USER_DISALLOWED == nil) {
+ SDLPermissionStatus_USER_DISALLOWED = [[SDLPermissionStatus alloc] initWithValue:@"USER_DISALLOWED"];
+ }
+ return SDLPermissionStatus_USER_DISALLOWED;
+}
+
++(SDLPermissionStatus*) USER_CONSENT_PENDING {
+ if (SDLPermissionStatus_USER_CONSENT_PENDING == nil) {
+ SDLPermissionStatus_USER_CONSENT_PENDING = [[SDLPermissionStatus alloc] initWithValue:@"USER_CONSENT_PENDING"];
+ }
+ return SDLPermissionStatus_USER_CONSENT_PENDING;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPolicyDataParser.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPolicyDataParser.h
new file mode 100644
index 000000000..f29ed812c
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPolicyDataParser.h
@@ -0,0 +1,31 @@
+//
+// PolicyDataParser.h
+//
+
+@import Foundation;
+
+@interface SDLPolicyDataParser : NSObject
+
+@property (assign) Byte protocolVersion;
+@property (assign) BOOL isResponseRequired;
+@property (assign) BOOL isHighBandwidth;
+@property (assign) BOOL isSigned;
+@property (assign) BOOL isEncrypted;
+@property (assign) BOOL hasESN;
+@property (assign) Byte serviceType;
+@property (assign) Byte commandType;
+@property (assign) BOOL CPUDestination;
+@property (assign) Byte encryptionKeyIndex;
+@property (assign) UInt32 payloadSize;
+@property (strong) NSData *ESN;
+@property (assign) UInt32 moduleMessageId;
+@property (assign) UInt32 serverMessageId;
+@property (assign) Byte messageStatus;
+@property (strong) NSData *initializationVector;
+@property (strong) NSData *payload;
+@property (strong) NSData *signatureTag;
+
+- (NSData *)unwrap:(NSData *)wrappedData;
+- (void)parsePolicyData:(NSData *)data;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPolicyDataParser.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPolicyDataParser.m
new file mode 100644
index 000000000..e25818d5a
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPolicyDataParser.m
@@ -0,0 +1,125 @@
+//
+// PolicyDataParser.m
+//
+
+#import "SDLPolicyDataParser.h"
+
+
+@implementation SDLPolicyDataParser
+
+- (NSData *)unwrap:(NSData *)wrappedData {
+
+ NSData *decodedData = nil;
+
+ @try {
+ NSError *errorJSONSerialization = nil;
+ NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:wrappedData options:kNilOptions error:&errorJSONSerialization];
+ NSArray *array = dictionary[@"data"];
+ NSString *base64EncodedString = array[0];
+ decodedData = [[NSData alloc] initWithBase64EncodedString:base64EncodedString options:0];
+ }
+ @catch (NSException *exception) {
+ decodedData = nil;
+ NSLog(@"Error in PolicyDataParser::unwrap()");
+ }
+
+ return decodedData;
+
+}
+
+- (void)parsePolicyData:(NSData *)data {
+ @try {
+
+ Byte *bytes = (Byte*)data.bytes;
+
+ Byte firstByte = bytes[0];
+ self.protocolVersion = (firstByte & 0b11100000) >> 5;
+ self.isResponseRequired = (firstByte & 0b00010000) != 0;
+ self.isHighBandwidth = (firstByte & 0b00001000) != 0;
+ self.isSigned = (firstByte & 0b00000100) != 0;
+ self.isEncrypted = (firstByte & 0b00000010) != 0;
+ self.hasESN = (firstByte & 0b00000001) != 0;
+
+ self.serviceType = bytes[1];
+
+ Byte thirdByte = bytes[2];
+ self.commandType = (thirdByte & 0b11110000) >> 4;
+ self.CPUDestination = (thirdByte & 0b00001000) != 0;
+ self.encryptionKeyIndex = (thirdByte & 0b00000111);
+
+ const int payloadSizeOffset = 3;
+ if (self.isHighBandwidth) {
+ self.payloadSize = ntohl(*(UInt32*)(bytes+payloadSizeOffset));
+ } else {
+ self.payloadSize = ntohs(*(UInt16*)(bytes+payloadSizeOffset));
+ }
+
+ if (self.hasESN) {
+ int esnOffset = self.isHighBandwidth?7:5;
+ self.ESN = [NSData dataWithBytes:(bytes+esnOffset) length:8];
+ }
+
+ if (self.isHighBandwidth) {
+ int moduleMessageIdOffset = 7;
+ if (self.hasESN) moduleMessageIdOffset += self.ESN.length;
+ self.moduleMessageId = ntohl(*(UInt32*)(bytes+moduleMessageIdOffset));
+
+ int serverMessageIdOffset = 11;
+ if (self.hasESN) serverMessageIdOffset += self.ESN.length;
+ self.serverMessageId = ntohl(*(UInt32*)(bytes+serverMessageIdOffset));
+
+ int messageStatusOffset = 15;
+ if (self.hasESN) messageStatusOffset += self.ESN.length;
+ self.messageStatus = bytes[messageStatusOffset];
+ }
+
+ if (self.isEncrypted) {
+ int ivOffset = 5;
+ if (self.isHighBandwidth) ivOffset += 11;
+ if (self.hasESN) ivOffset += self.ESN.length;
+ self.initializationVector = [NSData dataWithBytes:(bytes+ivOffset) length:16];
+ }
+
+ int payloadOffset = 5;
+ if (self.isHighBandwidth) payloadOffset += 11;
+ if (self.hasESN) payloadOffset += self.ESN.length;
+ if (self.isEncrypted) payloadOffset += self.initializationVector.length;
+ self.payload = [NSData dataWithBytes:(bytes+payloadOffset) length:self.payloadSize];
+
+ if (self.isSigned) {
+ int signatureTagOffset = (int)data.length - 16;
+ self.signatureTag = [NSData dataWithBytes:(bytes+signatureTagOffset) length:16];
+ }
+
+ }
+ @catch (NSException *exception) {
+ NSLog(@"Error in PolicyDataParser::parsePolicyData()");
+ }
+
+}
+
+- (NSString *)description {
+
+ NSString *esnString = [[NSString alloc] initWithData:self.ESN encoding:NSUTF8StringEncoding];
+
+ NSMutableString *descriptionString = [NSMutableString stringWithFormat:@"Ver:%u; ", self.protocolVersion];
+ [descriptionString appendFormat:@"RespReq:%u; ", self.isResponseRequired];
+ [descriptionString appendFormat:@"HiBnd:%u; ", self.isHighBandwidth];
+ [descriptionString appendFormat:@"Sign:%u; ", self.isSigned];
+ [descriptionString appendFormat:@"Enc:%u; ", self.isEncrypted];
+ [descriptionString appendFormat:@"HasESN:%u; ", self.hasESN];
+ [descriptionString appendFormat:@"Svc:%u; ", self.serviceType];
+ [descriptionString appendFormat:@"Cmd:%u; ", self.commandType];
+ [descriptionString appendFormat:@"CPU:%u; ", self.CPUDestination];
+ [descriptionString appendFormat:@"EncKey:%u; ", self.encryptionKeyIndex];
+ [descriptionString appendFormat:@"sz:%u; ", (unsigned int)self.payloadSize];
+ [descriptionString appendFormat:@"ESN:%@; ", esnString];
+ [descriptionString appendFormat:@"mmid:%u; ", (unsigned int)self.moduleMessageId];
+ [descriptionString appendFormat:@"smid:%u; ", (unsigned int)self.serverMessageId];
+ [descriptionString appendFormat:@"status:%u; ", self.messageStatus];
+ [descriptionString appendFormat:@"iv:%@; ", self.initializationVector];
+ [descriptionString appendFormat:@"hmac:%@", self.signatureTag];
+ return descriptionString;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPowerModeQualificationStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPowerModeQualificationStatus.h
new file mode 100644
index 000000000..be3ca43a7
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPowerModeQualificationStatus.h
@@ -0,0 +1,18 @@
+// SDLPowerModeQualificationStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLPowerModeQualificationStatus : SDLEnum {}
+
++(SDLPowerModeQualificationStatus*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLPowerModeQualificationStatus*) POWER_MODE_UNDEFINED;
++(SDLPowerModeQualificationStatus*) POWER_MODE_EVALUATION_IN_PROGRESS;
++(SDLPowerModeQualificationStatus*) NOT_DEFINED;
++(SDLPowerModeQualificationStatus*) POWER_MODE_OK;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPowerModeQualificationStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPowerModeQualificationStatus.m
new file mode 100644
index 000000000..a810415ab
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPowerModeQualificationStatus.m
@@ -0,0 +1,65 @@
+// SDLPowerModeQualificationStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLPowerModeQualificationStatus.h"
+
+SDLPowerModeQualificationStatus* SDLPowerModeQualificationStatus_POWER_MODE_UNDEFINED = nil;
+SDLPowerModeQualificationStatus* SDLPowerModeQualificationStatus_POWER_MODE_EVALUATION_IN_PROGRESS = nil;
+SDLPowerModeQualificationStatus* SDLPowerModeQualificationStatus_NOT_DEFINED = nil;
+SDLPowerModeQualificationStatus* SDLPowerModeQualificationStatus_POWER_MODE_OK = nil;
+
+NSMutableArray* SDLPowerModeQualificationStatus_values = nil;
+
+@implementation SDLPowerModeQualificationStatus
+
++(SDLPowerModeQualificationStatus*) valueOf:(NSString*) value {
+ for (SDLPowerModeQualificationStatus* item in SDLPowerModeQualificationStatus.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLPowerModeQualificationStatus_values == nil) {
+ SDLPowerModeQualificationStatus_values = [[NSMutableArray alloc] initWithObjects:
+ SDLPowerModeQualificationStatus.POWER_MODE_UNDEFINED,
+ SDLPowerModeQualificationStatus.POWER_MODE_EVALUATION_IN_PROGRESS,
+ SDLPowerModeQualificationStatus.NOT_DEFINED,
+ SDLPowerModeQualificationStatus.POWER_MODE_OK,
+ nil];
+ }
+ return SDLPowerModeQualificationStatus_values;
+}
+
++(SDLPowerModeQualificationStatus*) POWER_MODE_UNDEFINED {
+ if (SDLPowerModeQualificationStatus_POWER_MODE_UNDEFINED == nil) {
+ SDLPowerModeQualificationStatus_POWER_MODE_UNDEFINED = [[SDLPowerModeQualificationStatus alloc] initWithValue:@"POWER_MODE_UNDEFINED"];
+ }
+ return SDLPowerModeQualificationStatus_POWER_MODE_UNDEFINED;
+}
+
++(SDLPowerModeQualificationStatus*) POWER_MODE_EVALUATION_IN_PROGRESS {
+ if (SDLPowerModeQualificationStatus_POWER_MODE_EVALUATION_IN_PROGRESS == nil) {
+ SDLPowerModeQualificationStatus_POWER_MODE_EVALUATION_IN_PROGRESS = [[SDLPowerModeQualificationStatus alloc] initWithValue:@"POWER_MODE_EVALUATION_IN_PROGRESS"];
+ }
+ return SDLPowerModeQualificationStatus_POWER_MODE_EVALUATION_IN_PROGRESS;
+}
+
++(SDLPowerModeQualificationStatus*) NOT_DEFINED {
+ if (SDLPowerModeQualificationStatus_NOT_DEFINED == nil) {
+ SDLPowerModeQualificationStatus_NOT_DEFINED = [[SDLPowerModeQualificationStatus alloc] initWithValue:@"NOT_DEFINED"];
+ }
+ return SDLPowerModeQualificationStatus_NOT_DEFINED;
+}
+
++(SDLPowerModeQualificationStatus*) POWER_MODE_OK {
+ if (SDLPowerModeQualificationStatus_POWER_MODE_OK == nil) {
+ SDLPowerModeQualificationStatus_POWER_MODE_OK = [[SDLPowerModeQualificationStatus alloc] initWithValue:@"POWER_MODE_OK"];
+ }
+ return SDLPowerModeQualificationStatus_POWER_MODE_OK;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPowerModeStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPowerModeStatus.h
new file mode 100644
index 000000000..9f587531a
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPowerModeStatus.h
@@ -0,0 +1,23 @@
+// SDLPowerModeStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLPowerModeStatus : SDLEnum {}
+
++(SDLPowerModeStatus*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLPowerModeStatus*) KEY_OUT;
++(SDLPowerModeStatus*) KEY_RECENTLY_OUT;
++(SDLPowerModeStatus*) KEY_APPROVED_0;
++(SDLPowerModeStatus*) POST_ACCESORY_0;
++(SDLPowerModeStatus*) ACCESORY_1;
++(SDLPowerModeStatus*) POST_IGNITION_1;
++(SDLPowerModeStatus*) IGNITION_ON_2;
++(SDLPowerModeStatus*) RUNNING_2;
++(SDLPowerModeStatus*) CRANK_3;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPowerModeStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPowerModeStatus.m
new file mode 100644
index 000000000..9c6a61fd4
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPowerModeStatus.m
@@ -0,0 +1,110 @@
+// SDLPowerModeStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLPowerModeStatus.h"
+
+SDLPowerModeStatus* SDLPowerModeStatus_KEY_OUT = nil;
+SDLPowerModeStatus* SDLPowerModeStatus_KEY_RECENTLY_OUT = nil;
+SDLPowerModeStatus* SDLPowerModeStatus_KEY_APPROVED_0 = nil;
+SDLPowerModeStatus* SDLPowerModeStatus_POST_ACCESORY_0 = nil;
+SDLPowerModeStatus* SDLPowerModeStatus_ACCESORY_1 = nil;
+SDLPowerModeStatus* SDLPowerModeStatus_POST_IGNITION_1 = nil;
+SDLPowerModeStatus* SDLPowerModeStatus_IGNITION_ON_2 = nil;
+SDLPowerModeStatus* SDLPowerModeStatus_RUNNING_2 = nil;
+SDLPowerModeStatus* SDLPowerModeStatus_CRANK_3 = nil;
+
+NSMutableArray* SDLPowerModeStatus_values = nil;
+
+@implementation SDLPowerModeStatus
+
++(SDLPowerModeStatus*) valueOf:(NSString*) value {
+ for (SDLPowerModeStatus* item in SDLPowerModeStatus.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLPowerModeStatus_values == nil) {
+ SDLPowerModeStatus_values = [[NSMutableArray alloc] initWithObjects:
+ SDLPowerModeStatus.KEY_OUT,
+ SDLPowerModeStatus.KEY_RECENTLY_OUT,
+ SDLPowerModeStatus.KEY_APPROVED_0,
+ SDLPowerModeStatus.POST_ACCESORY_0,
+ SDLPowerModeStatus.ACCESORY_1,
+ SDLPowerModeStatus.POST_IGNITION_1,
+ SDLPowerModeStatus.IGNITION_ON_2,
+ SDLPowerModeStatus.RUNNING_2,
+ SDLPowerModeStatus.CRANK_3,
+ nil];
+ }
+ return SDLPowerModeStatus_values;
+}
+
++(SDLPowerModeStatus*) KEY_OUT {
+ if (SDLPowerModeStatus_KEY_OUT == nil) {
+ SDLPowerModeStatus_KEY_OUT = [[SDLPowerModeStatus alloc] initWithValue:@"KEY_OUT"];
+ }
+ return SDLPowerModeStatus_KEY_OUT;
+}
+
++(SDLPowerModeStatus*) KEY_RECENTLY_OUT {
+ if (SDLPowerModeStatus_KEY_RECENTLY_OUT == nil) {
+ SDLPowerModeStatus_KEY_RECENTLY_OUT = [[SDLPowerModeStatus alloc] initWithValue:@"KEY_RECENTLY_OUT"];
+ }
+ return SDLPowerModeStatus_KEY_RECENTLY_OUT;
+}
+
++(SDLPowerModeStatus*) KEY_APPROVED_0 {
+ if (SDLPowerModeStatus_KEY_APPROVED_0 == nil) {
+ SDLPowerModeStatus_KEY_APPROVED_0 = [[SDLPowerModeStatus alloc] initWithValue:@"KEY_APPROVED_0"];
+ }
+ return SDLPowerModeStatus_KEY_APPROVED_0;
+}
+
++(SDLPowerModeStatus*) POST_ACCESORY_0 {
+ if (SDLPowerModeStatus_POST_ACCESORY_0 == nil) {
+ SDLPowerModeStatus_POST_ACCESORY_0 = [[SDLPowerModeStatus alloc] initWithValue:@"POST_ACCESORY_0"];
+ }
+ return SDLPowerModeStatus_POST_ACCESORY_0;
+}
+
++(SDLPowerModeStatus*) ACCESORY_1 {
+ if (SDLPowerModeStatus_ACCESORY_1 == nil) {
+ SDLPowerModeStatus_ACCESORY_1 = [[SDLPowerModeStatus alloc] initWithValue:@"ACCESORY_1"];
+ }
+ return SDLPowerModeStatus_ACCESORY_1;
+}
+
++(SDLPowerModeStatus*) POST_IGNITION_1 {
+ if (SDLPowerModeStatus_POST_IGNITION_1 == nil) {
+ SDLPowerModeStatus_POST_IGNITION_1 = [[SDLPowerModeStatus alloc] initWithValue:@"POST_IGNITION_1"];
+ }
+ return SDLPowerModeStatus_POST_IGNITION_1;
+}
+
++(SDLPowerModeStatus*) IGNITION_ON_2 {
+ if (SDLPowerModeStatus_IGNITION_ON_2 == nil) {
+ SDLPowerModeStatus_IGNITION_ON_2 = [[SDLPowerModeStatus alloc] initWithValue:@"IGNITION_ON_2"];
+ }
+ return SDLPowerModeStatus_IGNITION_ON_2;
+}
+
++(SDLPowerModeStatus*) RUNNING_2 {
+ if (SDLPowerModeStatus_RUNNING_2 == nil) {
+ SDLPowerModeStatus_RUNNING_2 = [[SDLPowerModeStatus alloc] initWithValue:@"RUNNING_2"];
+ }
+ return SDLPowerModeStatus_RUNNING_2;
+}
+
++(SDLPowerModeStatus*) CRANK_3 {
+ if (SDLPowerModeStatus_CRANK_3 == nil) {
+ SDLPowerModeStatus_CRANK_3 = [[SDLPowerModeStatus alloc] initWithValue:@"CRANK_3"];
+ }
+ return SDLPowerModeStatus_CRANK_3;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPredefinedLayout.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPredefinedLayout.h
new file mode 100644
index 000000000..44a726a28
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPredefinedLayout.h
@@ -0,0 +1,34 @@
+// SDLPredefinedLayout.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLPredefinedLayout : SDLEnum {}
+
++(SDLPredefinedLayout*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLPredefinedLayout*) DEFAULT;
++(SDLPredefinedLayout*) MEDIA;
++(SDLPredefinedLayout*) NON_MEDIA;
++(SDLPredefinedLayout*) ONSCREEN_PRESETS;
++(SDLPredefinedLayout*) NAV_FULLSCREEN_MAP;
++(SDLPredefinedLayout*) NAV_LIST;
++(SDLPredefinedLayout*) NAV_KEYBOARD;
++(SDLPredefinedLayout*) GRAPHIC_WITH_TEXT;
++(SDLPredefinedLayout*) TEXT_WITH_GRAPHIC;
++(SDLPredefinedLayout*) TILES_ONLY;
++(SDLPredefinedLayout*) TEXTBUTTONS_ONLY;
++(SDLPredefinedLayout*) GRAPHIC_WITH_TILES;
++(SDLPredefinedLayout*) TILES_WITH_GRAPHIC;
++(SDLPredefinedLayout*) GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS;
++(SDLPredefinedLayout*) TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC;
++(SDLPredefinedLayout*) GRAPHIC_WITH_TEXTBUTTONS;
++(SDLPredefinedLayout*) TEXTBUTTONS_WITH_GRAPHIC;
++(SDLPredefinedLayout*) LARGE_GRAPHIC_WITH_SOFTBUTTONS;
++(SDLPredefinedLayout*) DOUBLE_GRAPHIC_WITH_SOFTBUTTONS;
++(SDLPredefinedLayout*) LARGE_GRAPHIC_ONLY;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPredefinedLayout.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPredefinedLayout.m
new file mode 100644
index 000000000..2f6b86a08
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPredefinedLayout.m
@@ -0,0 +1,209 @@
+// SDLPredefinedLayout.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLPredefinedLayout.h"
+
+SDLPredefinedLayout* SDLPredefinedLayout_DEFAULT = nil;
+SDLPredefinedLayout* SDLPredefinedLayout_MEDIA = nil;
+SDLPredefinedLayout* SDLPredefinedLayout_NON_MEDIA = nil;
+SDLPredefinedLayout* SDLPredefinedLayout_ONSCREEN_PRESETS = nil;
+SDLPredefinedLayout* SDLPredefinedLayout_NAV_FULLSCREEN_MAP = nil;
+SDLPredefinedLayout* SDLPredefinedLayout_NAV_LIST = nil;
+SDLPredefinedLayout* SDLPredefinedLayout_NAV_KEYBOARD = nil;
+SDLPredefinedLayout* SDLPredefinedLayout_GRAPHIC_WITH_TEXT = nil;
+SDLPredefinedLayout* SDLPredefinedLayout_TEXT_WITH_GRAPHIC = nil;
+SDLPredefinedLayout* SDLPredefinedLayout_TILES_ONLY = nil;
+SDLPredefinedLayout* SDLPredefinedLayout_TEXTBUTTONS_ONLY = nil;
+SDLPredefinedLayout* SDLPredefinedLayout_GRAPHIC_WITH_TILES = nil;
+SDLPredefinedLayout* SDLPredefinedLayout_TILES_WITH_GRAPHIC = nil;
+SDLPredefinedLayout* SDLPredefinedLayout_GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS = nil;
+SDLPredefinedLayout* SDLPredefinedLayout_TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC = nil;
+SDLPredefinedLayout* SDLPredefinedLayout_GRAPHIC_WITH_TEXTBUTTONS = nil;
+SDLPredefinedLayout* SDLPredefinedLayout_TEXTBUTTONS_WITH_GRAPHIC = nil;
+SDLPredefinedLayout* SDLPredefinedLayout_LARGE_GRAPHIC_WITH_SOFTBUTTONS = nil;
+SDLPredefinedLayout* SDLPredefinedLayout_DOUBLE_GRAPHIC_WITH_SOFTBUTTONS = nil;
+SDLPredefinedLayout* SDLPredefinedLayout_LARGE_GRAPHIC_ONLY = nil;
+
+NSMutableArray* SDLPredefinedLayout_values = nil;
+
+@implementation SDLPredefinedLayout
+
++(SDLPredefinedLayout*) valueOf:(NSString*) value {
+ for (SDLPredefinedLayout* item in SDLPredefinedLayout.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLPredefinedLayout_values == nil) {
+ SDLPredefinedLayout_values = [[NSMutableArray alloc] initWithObjects:
+ SDLPredefinedLayout.DEFAULT,
+ SDLPredefinedLayout.MEDIA,
+ SDLPredefinedLayout.NON_MEDIA,
+ SDLPredefinedLayout.ONSCREEN_PRESETS,
+ SDLPredefinedLayout.NAV_FULLSCREEN_MAP,
+ SDLPredefinedLayout.NAV_LIST,
+ SDLPredefinedLayout.NAV_KEYBOARD,
+ SDLPredefinedLayout.GRAPHIC_WITH_TEXT,
+ SDLPredefinedLayout.TEXT_WITH_GRAPHIC,
+ SDLPredefinedLayout.TILES_ONLY,
+ SDLPredefinedLayout.TEXTBUTTONS_ONLY,
+ SDLPredefinedLayout.GRAPHIC_WITH_TILES,
+ SDLPredefinedLayout.TILES_WITH_GRAPHIC,
+ SDLPredefinedLayout.GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS,
+ SDLPredefinedLayout.TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC,
+ SDLPredefinedLayout.GRAPHIC_WITH_TEXTBUTTONS,
+ SDLPredefinedLayout.TEXTBUTTONS_WITH_GRAPHIC,
+ SDLPredefinedLayout.LARGE_GRAPHIC_WITH_SOFTBUTTONS,
+ SDLPredefinedLayout.DOUBLE_GRAPHIC_WITH_SOFTBUTTONS,
+ SDLPredefinedLayout.LARGE_GRAPHIC_ONLY,
+ nil];
+ }
+ return SDLPredefinedLayout_values;
+}
+
++(SDLPredefinedLayout*) DEFAULT {
+ if (SDLPredefinedLayout_DEFAULT == nil) {
+ SDLPredefinedLayout_DEFAULT = [[SDLPredefinedLayout alloc] initWithValue:@"DEFAULT"];
+ }
+ return SDLPredefinedLayout_DEFAULT;
+}
+
++(SDLPredefinedLayout*) MEDIA {
+ if (SDLPredefinedLayout_MEDIA == nil) {
+ SDLPredefinedLayout_MEDIA = [[SDLPredefinedLayout alloc] initWithValue:@"MEDIA"];
+ }
+ return SDLPredefinedLayout_MEDIA;
+}
+
++(SDLPredefinedLayout*) NON_MEDIA {
+ if (SDLPredefinedLayout_NON_MEDIA == nil) {
+ SDLPredefinedLayout_NON_MEDIA = [[SDLPredefinedLayout alloc] initWithValue:@"NON-MEDIA"];
+ }
+ return SDLPredefinedLayout_NON_MEDIA;
+}
+
++(SDLPredefinedLayout*) ONSCREEN_PRESETS {
+ if (SDLPredefinedLayout_ONSCREEN_PRESETS == nil) {
+ SDLPredefinedLayout_ONSCREEN_PRESETS = [[SDLPredefinedLayout alloc] initWithValue:@"ONSCREEN_PRESETS"];
+ }
+ return SDLPredefinedLayout_ONSCREEN_PRESETS;
+}
+
++(SDLPredefinedLayout*) NAV_FULLSCREEN_MAP {
+ if (SDLPredefinedLayout_NAV_FULLSCREEN_MAP == nil) {
+ SDLPredefinedLayout_NAV_FULLSCREEN_MAP = [[SDLPredefinedLayout alloc] initWithValue:@"NAV_FULLSCREEN_MAP"];
+ }
+ return SDLPredefinedLayout_NAV_FULLSCREEN_MAP;
+}
+
++(SDLPredefinedLayout*) NAV_LIST {
+ if (SDLPredefinedLayout_NAV_LIST == nil) {
+ SDLPredefinedLayout_NAV_LIST = [[SDLPredefinedLayout alloc] initWithValue:@"NAV_LIST"];
+ }
+ return SDLPredefinedLayout_NAV_LIST;
+}
+
++(SDLPredefinedLayout*) NAV_KEYBOARD {
+ if (SDLPredefinedLayout_NAV_KEYBOARD == nil) {
+ SDLPredefinedLayout_NAV_KEYBOARD = [[SDLPredefinedLayout alloc] initWithValue:@"NAV_KEYBOARD"];
+ }
+ return SDLPredefinedLayout_NAV_KEYBOARD;
+}
+
++(SDLPredefinedLayout*) GRAPHIC_WITH_TEXT {
+ if (SDLPredefinedLayout_GRAPHIC_WITH_TEXT == nil) {
+ SDLPredefinedLayout_GRAPHIC_WITH_TEXT = [[SDLPredefinedLayout alloc] initWithValue:@"GRAPHIC_WITH_TEXT"];
+ }
+ return SDLPredefinedLayout_GRAPHIC_WITH_TEXT;
+}
+
++(SDLPredefinedLayout*) TEXT_WITH_GRAPHIC {
+ if (SDLPredefinedLayout_TEXT_WITH_GRAPHIC == nil) {
+ SDLPredefinedLayout_TEXT_WITH_GRAPHIC = [[SDLPredefinedLayout alloc] initWithValue:@"TEXT_WITH_GRAPHIC"];
+ }
+ return SDLPredefinedLayout_TEXT_WITH_GRAPHIC;
+}
+
++(SDLPredefinedLayout*) TILES_ONLY {
+ if (SDLPredefinedLayout_TILES_ONLY == nil) {
+ SDLPredefinedLayout_TILES_ONLY = [[SDLPredefinedLayout alloc] initWithValue:@"TILES_ONLY"];
+ }
+ return SDLPredefinedLayout_TILES_ONLY;
+}
+
++(SDLPredefinedLayout*) TEXTBUTTONS_ONLY {
+ if (SDLPredefinedLayout_TEXTBUTTONS_ONLY == nil) {
+ SDLPredefinedLayout_TEXTBUTTONS_ONLY = [[SDLPredefinedLayout alloc] initWithValue:@"TEXTBUTTONS_ONLY"];
+ }
+ return SDLPredefinedLayout_TEXTBUTTONS_ONLY;
+}
+
++(SDLPredefinedLayout*) GRAPHIC_WITH_TILES {
+ if (SDLPredefinedLayout_GRAPHIC_WITH_TILES == nil) {
+ SDLPredefinedLayout_GRAPHIC_WITH_TILES = [[SDLPredefinedLayout alloc] initWithValue:@"GRAPHIC_WITH_TILES"];
+ }
+ return SDLPredefinedLayout_GRAPHIC_WITH_TILES;
+}
+
++(SDLPredefinedLayout*) TILES_WITH_GRAPHIC {
+ if (SDLPredefinedLayout_TILES_WITH_GRAPHIC == nil) {
+ SDLPredefinedLayout_TILES_WITH_GRAPHIC = [[SDLPredefinedLayout alloc] initWithValue:@"TILES_WITH_GRAPHIC"];
+ }
+ return SDLPredefinedLayout_TILES_WITH_GRAPHIC;
+}
+
++(SDLPredefinedLayout*) GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS {
+ if (SDLPredefinedLayout_GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS == nil) {
+ SDLPredefinedLayout_GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS = [[SDLPredefinedLayout alloc] initWithValue:@"GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS"];
+ }
+ return SDLPredefinedLayout_GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS;
+}
+
++(SDLPredefinedLayout*) TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC {
+ if (SDLPredefinedLayout_TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC == nil) {
+ SDLPredefinedLayout_TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC = [[SDLPredefinedLayout alloc] initWithValue:@"TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC"];
+ }
+ return SDLPredefinedLayout_TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC;
+}
+
++(SDLPredefinedLayout*) GRAPHIC_WITH_TEXTBUTTONS {
+ if (SDLPredefinedLayout_GRAPHIC_WITH_TEXTBUTTONS == nil) {
+ SDLPredefinedLayout_GRAPHIC_WITH_TEXTBUTTONS = [[SDLPredefinedLayout alloc] initWithValue:@"GRAPHIC_WITH_TEXTBUTTONS"];
+ }
+ return SDLPredefinedLayout_GRAPHIC_WITH_TEXTBUTTONS;
+}
+
++(SDLPredefinedLayout*) TEXTBUTTONS_WITH_GRAPHIC {
+ if (SDLPredefinedLayout_TEXTBUTTONS_WITH_GRAPHIC == nil) {
+ SDLPredefinedLayout_TEXTBUTTONS_WITH_GRAPHIC = [[SDLPredefinedLayout alloc] initWithValue:@"TEXTBUTTONS_WITH_GRAPHIC"];
+ }
+ return SDLPredefinedLayout_TEXTBUTTONS_WITH_GRAPHIC;
+}
+
++(SDLPredefinedLayout*) LARGE_GRAPHIC_WITH_SOFTBUTTONS {
+ if (SDLPredefinedLayout_LARGE_GRAPHIC_WITH_SOFTBUTTONS == nil) {
+ SDLPredefinedLayout_LARGE_GRAPHIC_WITH_SOFTBUTTONS = [[SDLPredefinedLayout alloc] initWithValue:@"LARGE_GRAPHIC_WITH_SOFTBUTTONS"];
+ }
+ return SDLPredefinedLayout_LARGE_GRAPHIC_WITH_SOFTBUTTONS;
+}
+
++(SDLPredefinedLayout*) DOUBLE_GRAPHIC_WITH_SOFTBUTTONS {
+ if (SDLPredefinedLayout_DOUBLE_GRAPHIC_WITH_SOFTBUTTONS == nil) {
+ SDLPredefinedLayout_DOUBLE_GRAPHIC_WITH_SOFTBUTTONS = [[SDLPredefinedLayout alloc] initWithValue:@"DOUBLE_GRAPHIC_WITH_SOFTBUTTONS"];
+ }
+ return SDLPredefinedLayout_DOUBLE_GRAPHIC_WITH_SOFTBUTTONS;
+}
+
++(SDLPredefinedLayout*) LARGE_GRAPHIC_ONLY {
+ if (SDLPredefinedLayout_LARGE_GRAPHIC_ONLY == nil) {
+ SDLPredefinedLayout_LARGE_GRAPHIC_ONLY = [[SDLPredefinedLayout alloc] initWithValue:@"LARGE_GRAPHIC_ONLY"];
+ }
+ return SDLPredefinedLayout_LARGE_GRAPHIC_ONLY;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPrerecordedSpeech.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPrerecordedSpeech.h
new file mode 100644
index 000000000..efd91959e
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPrerecordedSpeech.h
@@ -0,0 +1,19 @@
+// SDLPrerecordedSpeech.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLPrerecordedSpeech : SDLEnum {}
+
++(SDLPrerecordedSpeech*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLPrerecordedSpeech*) HELP_JINGLE;
++(SDLPrerecordedSpeech*) INITIAL_JINGLE;
++(SDLPrerecordedSpeech*) LISTEN_JINGLE;
++(SDLPrerecordedSpeech*) POSITIVE_JINGLE;
++(SDLPrerecordedSpeech*) NEGATIVE_JINGLE;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPrerecordedSpeech.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPrerecordedSpeech.m
new file mode 100644
index 000000000..f7f4bfabd
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPrerecordedSpeech.m
@@ -0,0 +1,74 @@
+// SDLPrerecordedSpeech.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLPrerecordedSpeech.h"
+
+SDLPrerecordedSpeech* SDLPrerecordedSpeech_HELP_JINGLE = nil;
+SDLPrerecordedSpeech* SDLPrerecordedSpeech_INITIAL_JINGLE = nil;
+SDLPrerecordedSpeech* SDLPrerecordedSpeech_LISTEN_JINGLE = nil;
+SDLPrerecordedSpeech* SDLPrerecordedSpeech_POSITIVE_JINGLE = nil;
+SDLPrerecordedSpeech* SDLPrerecordedSpeech_NEGATIVE_JINGLE = nil;
+
+NSMutableArray* SDLPrerecordedSpeech_values = nil;
+
+@implementation SDLPrerecordedSpeech
+
++(SDLPrerecordedSpeech*) valueOf:(NSString*) value {
+ for (SDLPrerecordedSpeech* item in SDLPrerecordedSpeech.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLPrerecordedSpeech_values == nil) {
+ SDLPrerecordedSpeech_values = [[NSMutableArray alloc] initWithObjects:
+ SDLPrerecordedSpeech.HELP_JINGLE,
+ SDLPrerecordedSpeech.INITIAL_JINGLE,
+ SDLPrerecordedSpeech.LISTEN_JINGLE,
+ SDLPrerecordedSpeech.POSITIVE_JINGLE,
+ SDLPrerecordedSpeech.NEGATIVE_JINGLE,
+ nil];
+ }
+ return SDLPrerecordedSpeech_values;
+}
+
++(SDLPrerecordedSpeech*) HELP_JINGLE {
+ if (SDLPrerecordedSpeech_HELP_JINGLE == nil) {
+ SDLPrerecordedSpeech_HELP_JINGLE = [[SDLPrerecordedSpeech alloc] initWithValue:@"HELP_JINGLE"];
+ }
+ return SDLPrerecordedSpeech_HELP_JINGLE;
+}
+
++(SDLPrerecordedSpeech*) INITIAL_JINGLE {
+ if (SDLPrerecordedSpeech_INITIAL_JINGLE == nil) {
+ SDLPrerecordedSpeech_INITIAL_JINGLE = [[SDLPrerecordedSpeech alloc] initWithValue:@"INITIAL_JINGLE"];
+ }
+ return SDLPrerecordedSpeech_INITIAL_JINGLE;
+}
+
++(SDLPrerecordedSpeech*) LISTEN_JINGLE {
+ if (SDLPrerecordedSpeech_LISTEN_JINGLE == nil) {
+ SDLPrerecordedSpeech_LISTEN_JINGLE = [[SDLPrerecordedSpeech alloc] initWithValue:@"LISTEN_JINGLE"];
+ }
+ return SDLPrerecordedSpeech_LISTEN_JINGLE;
+}
+
++(SDLPrerecordedSpeech*) POSITIVE_JINGLE {
+ if (SDLPrerecordedSpeech_POSITIVE_JINGLE == nil) {
+ SDLPrerecordedSpeech_POSITIVE_JINGLE = [[SDLPrerecordedSpeech alloc] initWithValue:@"POSITIVE_JINGLE"];
+ }
+ return SDLPrerecordedSpeech_POSITIVE_JINGLE;
+}
+
++(SDLPrerecordedSpeech*) NEGATIVE_JINGLE {
+ if (SDLPrerecordedSpeech_NEGATIVE_JINGLE == nil) {
+ SDLPrerecordedSpeech_NEGATIVE_JINGLE = [[SDLPrerecordedSpeech alloc] initWithValue:@"NEGATIVE_JINGLE"];
+ }
+ return SDLPrerecordedSpeech_NEGATIVE_JINGLE;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPresetBankCapabilities.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPresetBankCapabilities.h
new file mode 100644
index 000000000..7c9078d4b
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPresetBankCapabilities.h
@@ -0,0 +1,15 @@
+// SDLPresetBankCapabilities.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+@interface SDLPresetBankCapabilities : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* onScreenPresetsAvailable;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPresetBankCapabilities.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPresetBankCapabilities.m
new file mode 100644
index 000000000..7475a22ca
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPresetBankCapabilities.m
@@ -0,0 +1,33 @@
+// SDLPresetBankCapabilities.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLPresetBankCapabilities.h"
+
+#import "SDLNames.h"
+
+@implementation SDLPresetBankCapabilities
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setOnScreenPresetsAvailable:(NSNumber*) onScreenPresetsAvailable {
+ if (onScreenPresetsAvailable != nil) {
+ [store setObject:onScreenPresetsAvailable forKey:NAMES_onScreenPresetsAvailable];
+ } else {
+ [store removeObjectForKey:NAMES_onScreenPresetsAvailable];
+ }
+}
+
+-(NSNumber*) onScreenPresetsAvailable {
+ return [store objectForKey:NAMES_onScreenPresetsAvailable];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPrimaryAudioSource.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPrimaryAudioSource.h
new file mode 100644
index 000000000..23deff690
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPrimaryAudioSource.h
@@ -0,0 +1,21 @@
+// SDLPrimaryAudioSource.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLPrimaryAudioSource : SDLEnum {}
+
++(SDLPrimaryAudioSource*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLPrimaryAudioSource*) NO_SOURCE_SELECTED;
++(SDLPrimaryAudioSource*) USB;
++(SDLPrimaryAudioSource*) USB2;
++(SDLPrimaryAudioSource*) BLUETOOTH_STEREO_BTST;
++(SDLPrimaryAudioSource*) LINE_IN;
++(SDLPrimaryAudioSource*) IPOD;
++(SDLPrimaryAudioSource*) MOBILE_APP;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPrimaryAudioSource.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPrimaryAudioSource.m
new file mode 100644
index 000000000..16eb48873
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPrimaryAudioSource.m
@@ -0,0 +1,92 @@
+// SDLPrimaryAudioSource.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLPrimaryAudioSource.h"
+
+SDLPrimaryAudioSource* SDLPrimaryAudioSource_NO_SOURCE_SELECTED = nil;
+SDLPrimaryAudioSource* SDLPrimaryAudioSource_USB = nil;
+SDLPrimaryAudioSource* SDLPrimaryAudioSource_USB2 = nil;
+SDLPrimaryAudioSource* SDLPrimaryAudioSource_BLUETOOTH_STEREO_BTST = nil;
+SDLPrimaryAudioSource* SDLPrimaryAudioSource_LINE_IN = nil;
+SDLPrimaryAudioSource* SDLPrimaryAudioSource_IPOD = nil;
+SDLPrimaryAudioSource* SDLPrimaryAudioSource_MOBILE_APP = nil;
+
+NSMutableArray* SDLPrimaryAudioSource_values = nil;
+
+@implementation SDLPrimaryAudioSource
+
++(SDLPrimaryAudioSource*) valueOf:(NSString*) value {
+ for (SDLPrimaryAudioSource* item in SDLPrimaryAudioSource.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLPrimaryAudioSource_values == nil) {
+ SDLPrimaryAudioSource_values = [[NSMutableArray alloc] initWithObjects:
+ SDLPrimaryAudioSource.NO_SOURCE_SELECTED,
+ SDLPrimaryAudioSource.USB,
+ SDLPrimaryAudioSource.USB2,
+ SDLPrimaryAudioSource.BLUETOOTH_STEREO_BTST,
+ SDLPrimaryAudioSource.LINE_IN,
+ SDLPrimaryAudioSource.IPOD,
+ SDLPrimaryAudioSource.MOBILE_APP,
+ nil];
+ }
+ return SDLPrimaryAudioSource_values;
+}
+
++(SDLPrimaryAudioSource*) NO_SOURCE_SELECTED {
+ if (SDLPrimaryAudioSource_NO_SOURCE_SELECTED == nil) {
+ SDLPrimaryAudioSource_NO_SOURCE_SELECTED = [[SDLPrimaryAudioSource alloc] initWithValue:@"NO_SOURCE_SELECTED"];
+ }
+ return SDLPrimaryAudioSource_NO_SOURCE_SELECTED;
+}
+
++(SDLPrimaryAudioSource*) USB {
+ if (SDLPrimaryAudioSource_USB == nil) {
+ SDLPrimaryAudioSource_USB = [[SDLPrimaryAudioSource alloc] initWithValue:@"USB"];
+ }
+ return SDLPrimaryAudioSource_USB;
+}
+
++(SDLPrimaryAudioSource*) USB2 {
+ if (SDLPrimaryAudioSource_USB2 == nil) {
+ SDLPrimaryAudioSource_USB2 = [[SDLPrimaryAudioSource alloc] initWithValue:@"USB2"];
+ }
+ return SDLPrimaryAudioSource_USB2;
+}
+
++(SDLPrimaryAudioSource*) BLUETOOTH_STEREO_BTST {
+ if (SDLPrimaryAudioSource_BLUETOOTH_STEREO_BTST == nil) {
+ SDLPrimaryAudioSource_BLUETOOTH_STEREO_BTST = [[SDLPrimaryAudioSource alloc] initWithValue:@"BLUETOOTH_STEREO_BTST"];
+ }
+ return SDLPrimaryAudioSource_BLUETOOTH_STEREO_BTST;
+}
+
++(SDLPrimaryAudioSource*) LINE_IN {
+ if (SDLPrimaryAudioSource_LINE_IN == nil) {
+ SDLPrimaryAudioSource_LINE_IN = [[SDLPrimaryAudioSource alloc] initWithValue:@"LINE_IN"];
+ }
+ return SDLPrimaryAudioSource_LINE_IN;
+}
+
++(SDLPrimaryAudioSource*) IPOD {
+ if (SDLPrimaryAudioSource_IPOD == nil) {
+ SDLPrimaryAudioSource_IPOD = [[SDLPrimaryAudioSource alloc] initWithValue:@"IPOD"];
+ }
+ return SDLPrimaryAudioSource_IPOD;
+}
+
++(SDLPrimaryAudioSource*) MOBILE_APP {
+ if (SDLPrimaryAudioSource_MOBILE_APP == nil) {
+ SDLPrimaryAudioSource_MOBILE_APP = [[SDLPrimaryAudioSource alloc] initWithValue:@"MOBILE_APP"];
+ }
+ return SDLPrimaryAudioSource_MOBILE_APP;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPrioritizedObjectCollection.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPrioritizedObjectCollection.h
new file mode 100644
index 000000000..b3f100e1e
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPrioritizedObjectCollection.h
@@ -0,0 +1,13 @@
+//
+// SDLPrioritizedOutputCollection.h
+// SmartDeviceLink
+//
+
+@import Foundation;
+
+@interface SDLPrioritizedObjectCollection : NSObject
+
+- (void)addObject:(id)object withPriority:(NSInteger)priority;
+- (id)nextObject;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPrioritizedObjectCollection.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPrioritizedObjectCollection.m
new file mode 100644
index 000000000..f9398fd52
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPrioritizedObjectCollection.m
@@ -0,0 +1,76 @@
+//
+// SDLPrioritizedOutputCollection.m
+// SmartDeviceLink
+//
+
+#import "SDLPrioritizedObjectCollection.h"
+#import "SDLObjectWithPriority.h"
+#import "SDLDebugTool.h"//fortesting
+
+@interface SDLPrioritizedObjectCollection ()
+{
+ NSMutableArray *privateArray;
+}
+@end
+
+
+@implementation SDLPrioritizedObjectCollection
+
+- (instancetype)init
+{
+ self = [super init];
+ if (self) {
+ privateArray = [NSMutableArray new];
+ }
+ return self;
+}
+
+- (void)addObject:(id)object withPriority:(NSInteger)priority
+{
+ if (object == nil || [[NSNull null] isEqual:object]) {
+ return;
+ }
+
+ SDLObjectWithPriority *newWrapper = [SDLObjectWithPriority new];
+ newWrapper.object = object;
+ newWrapper.priority = priority;
+
+ @synchronized(privateArray)
+ {
+ // Find correct place to insert.
+ // Sorted in descending order.
+ BOOL lowerPriorityFound = NO;
+ NSInteger currentCount = privateArray.count;
+ for (int x = 0; x < currentCount; x++) {
+ SDLObjectWithPriority *o = privateArray[x];
+ if (o.priority <= priority) {
+ lowerPriorityFound = YES;
+ [privateArray insertObject:newWrapper atIndex:x];
+ break;
+ }
+ }
+ if (!lowerPriorityFound) {
+ [privateArray addObject:newWrapper];
+ }
+
+ }
+
+}
+
+- (id)nextObject
+{
+ if (privateArray.count == 0) {
+ return nil;
+ }
+
+ SDLObjectWithPriority *obj = nil;
+ @synchronized(privateArray)
+ {
+ obj = (SDLObjectWithPriority *)[privateArray lastObject];
+ [privateArray removeLastObject];
+ }
+
+ return obj.object;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocol.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocol.h
new file mode 100644
index 000000000..165f6df8a
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocol.h
@@ -0,0 +1,16 @@
+// SDLSmartDeviceLinkProtocol.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLAbstractProtocol.h"
+
+
+@interface SDLProtocol : SDLAbstractProtocol <SDLProtocolListener>
+
+- (void)sendStartSessionWithType:(SDLServiceType)serviceType;
+- (void)sendEndSessionWithType:(SDLServiceType)serviceType sessionID:(Byte)sessionID;
+- (void)sendRPCRequest:(SDLRPCRequest *)rpcRequest;
+- (void)handleBytesFromTransport:(NSData *)receivedData;
+- (void)sendHeartbeat;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocol.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocol.m
new file mode 100644
index 000000000..8a51702f6
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocol.m
@@ -0,0 +1,283 @@
+// SDLSmartDeviceLinkProtocol.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLJsonEncoder.h"
+#import "SDLFunctionID.h"
+
+#import "SDLRPCRequest.h"
+#import "SDLProtocol.h"
+#import "SDLProtocolHeader.h"
+#import "SDLV2ProtocolHeader.h"
+#import "SDLProtocolMessageDisassembler.h"
+#import "SDLProtocolRecievedMessageRouter.h"
+#import "SDLRPCPayload.h"
+#import "SDLDebugTool.h"
+#import "SDLPrioritizedObjectCollection.h"
+
+
+const NSUInteger MAX_TRANSMISSION_SIZE = 512;
+const UInt8 MAX_VERSION_TO_SEND = 3;
+
+@interface SDLProtocol () {
+ UInt32 _messageID;
+ dispatch_queue_t _recieveQueue;
+ dispatch_queue_t _sendQueue;
+ SDLPrioritizedObjectCollection *prioritizedCollection;
+}
+
+@property (assign) UInt8 version;
+@property (assign) UInt8 maxVersionSupportedByHeadUnit;
+@property (assign) UInt8 sessionID;
+@property (strong) NSMutableData *recieveBuffer;
+@property (strong) SDLProtocolRecievedMessageRouter *messageRouter;
+
+- (void)sendDataToTransport:(NSData *)data withPriority:(NSInteger)priority;
+- (void)logRPCSend:(SDLProtocolMessage *)message;
+
+@end
+
+
+@implementation SDLProtocol
+
+- (id)init {
+ if (self = [super init]) {
+ _version = 1;
+ _messageID = 0;
+ _sessionID = 0;
+ _recieveQueue = dispatch_queue_create("com.sdl.recieve", DISPATCH_QUEUE_SERIAL);
+ _sendQueue = dispatch_queue_create("com.sdl.send.defaultpriority", DISPATCH_QUEUE_SERIAL);
+ prioritizedCollection = [SDLPrioritizedObjectCollection new];
+
+ self.messageRouter = [[SDLProtocolRecievedMessageRouter alloc] init];
+ self.messageRouter.delegate = self;
+ }
+ return self;
+}
+
+
+- (void)sendStartSessionWithType:(SDLServiceType)serviceType {
+
+ SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:1];
+ header.frameType = SDLFrameType_Control;
+ header.serviceType = serviceType;
+ header.frameData = SDLFrameData_StartSession;
+
+ SDLProtocolMessage *message = [SDLProtocolMessage messageWithHeader:header andPayload:nil];
+
+ [self sendDataToTransport:message.data withPriority:serviceType];
+}
+
+- (void)sendEndSessionWithType:(SDLServiceType)serviceType sessionID:(Byte)sessionID {
+
+ SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:self.version];
+ header.frameType = SDLFrameType_Control;
+ header.serviceType = serviceType;
+ header.frameData = SDLFrameData_StartSession;
+ header.sessionID = self.sessionID;
+
+ SDLProtocolMessage *message = [SDLProtocolMessage messageWithHeader:header andPayload:nil];
+
+ [self sendDataToTransport:message.data withPriority:serviceType];
+
+}
+
+// SDLRPCRequest in from app -> SDLProtocolMessage out to transport layer.
+- (void)sendRPCRequest:(SDLRPCRequest *)rpcRequest {
+
+ NSData *jsonData = [[SDLJsonEncoder instance] encodeDictionary:[rpcRequest serializeAsDictionary:self.version]];
+ NSData* messagePayload = nil;
+
+ NSString *logMessage = [NSString stringWithFormat:@"%@", rpcRequest];
+ [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+
+ if(self.version == 1) {
+ messagePayload = jsonData;
+ } else if (self.version == 2) {
+ // Serialize the RPC data into an NSData
+ SDLRPCPayload *rpcPayload = [[SDLRPCPayload alloc] init];
+ rpcPayload.rpcType = 0;
+ rpcPayload.functionID = [[[[SDLFunctionID alloc] init] getFunctionID:[rpcRequest getFunctionName]] intValue];
+ rpcPayload.correlationID = [rpcRequest.correlationID intValue];
+ rpcPayload.jsonData = jsonData;
+ rpcPayload.binaryData = rpcRequest.bulkData;
+ messagePayload = rpcPayload.data;
+ }
+
+ //
+ // Build the protocol level header & message
+ //
+ SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:self.version];
+ header.frameType = SDLFrameType_Single;
+ header.serviceType = SDLServiceType_RPC;
+ header.frameData = SDLFrameData_SingleFrame;
+ header.sessionID = self.sessionID;
+ header.bytesInPayload = (UInt32)messagePayload.length;
+
+ // V2+ messages need to have message ID property set.
+ if (self.version >= 2) {
+ [((SDLV2ProtocolHeader*)header) setMessageID:++_messageID];
+ }
+
+
+ SDLProtocolMessage *message = [SDLProtocolMessage messageWithHeader:header andPayload:messagePayload];
+
+
+ //
+ // See if the message is small enough to send in one transmission.
+ // If not, break it up into smaller messages and send.
+ //
+ if (message.size < MAX_TRANSMISSION_SIZE)
+ {
+ [self logRPCSend:message];
+ [self sendDataToTransport:message.data withPriority:SDLServiceType_RPC];
+ }
+ else
+ {
+ NSArray *messages = [SDLProtocolMessageDisassembler disassemble:message withLimit:MAX_TRANSMISSION_SIZE];
+ for (SDLProtocolMessage *smallerMessage in messages) {
+ [self logRPCSend:smallerMessage];
+ [self sendDataToTransport:smallerMessage.data withPriority:SDLServiceType_RPC];
+ }
+
+ }
+
+}
+
+- (void)logRPCSend:(SDLProtocolMessage *)message {
+ NSString *logMessage = [NSString stringWithFormat:@"Sending : %@", message];
+ [SDLDebugTool logInfo:logMessage withType:SDLDebugType_Protocol toOutput:SDLDebugOutput_File|SDLDebugOutput_DeviceConsole toGroup:self.debugConsoleGroupName];
+}
+
+// Use for normal messages
+- (void)sendDataToTransport:(NSData *)data withPriority:(NSInteger)priority {
+
+ [prioritizedCollection addObject:data withPriority:priority];
+
+ dispatch_async(_sendQueue, ^{
+
+ NSData *dataToTransmit = nil;
+ while(dataToTransmit = (NSData *)[prioritizedCollection nextObject])
+ {
+ [self.transport sendData:dataToTransmit];
+ };
+
+ });
+
+}
+
+//
+// Turn recieved bytes into message objects.
+//
+- (void)handleBytesFromTransport:(NSData *)recievedData {
+
+ NSMutableString *logMessage = [[NSMutableString alloc]init];//
+ [logMessage appendFormat:@"Received: %ld", (long)recievedData.length];
+
+ // Initialize the recieve buffer which will contain bytes while messages are constructed.
+ if (self.recieveBuffer == nil) {
+ self.recieveBuffer = [NSMutableData dataWithCapacity:(4 * MAX_TRANSMISSION_SIZE)];
+ }
+
+ // Save the data
+ [self.recieveBuffer appendData:recievedData];
+ [logMessage appendFormat:@"(%ld) ", (long)self.recieveBuffer.length];
+
+ [self processMessages];
+}
+
+- (void)processMessages {
+ NSMutableString *logMessage = [[NSMutableString alloc]init];
+
+ // Get the version
+ UInt8 incomingVersion = [SDLProtocolMessage determineVersion:self.recieveBuffer];
+
+ // If we have enough bytes, create the header.
+ SDLProtocolHeader* header = [SDLProtocolHeader headerForVersion:incomingVersion];
+ NSUInteger headerSize = header.size;
+ if (self.recieveBuffer.length >= headerSize) {
+ [header parse:self.recieveBuffer];
+ } else {
+ // Need to wait for more bytes.
+ [logMessage appendString:@"header incomplete, waiting for more bytes."];
+ [SDLDebugTool logInfo:logMessage withType:SDLDebugType_Protocol toOutput:SDLDebugOutput_File|SDLDebugOutput_DeviceConsole toGroup:self.debugConsoleGroupName];
+ return;
+ }
+
+ // If we have enough bytes, finish building the message.
+ SDLProtocolMessage *message = nil;
+ NSUInteger payloadSize = header.bytesInPayload;
+ NSUInteger messageSize = headerSize + payloadSize;
+ if (self.recieveBuffer.length >= messageSize) {
+ NSUInteger payloadOffset = headerSize;
+ NSUInteger payloadLength = payloadSize;
+ NSData *payload = [self.recieveBuffer subdataWithRange:NSMakeRange(payloadOffset, payloadLength)];
+ message = [SDLProtocolMessage messageWithHeader:header andPayload:payload];
+ [logMessage appendFormat:@"message complete. %@", message];
+ [SDLDebugTool logInfo:logMessage withType:SDLDebugType_Protocol toOutput:SDLDebugOutput_File|SDLDebugOutput_DeviceConsole toGroup:self.debugConsoleGroupName];
+ } else {
+ // Need to wait for more bytes.
+ [logMessage appendFormat:@"header complete. message incomplete, waiting for %ld more bytes. Header:%@", (long)(messageSize - self.recieveBuffer.length), header];
+ [SDLDebugTool logInfo:logMessage withType:SDLDebugType_Protocol toOutput:SDLDebugOutput_File|SDLDebugOutput_DeviceConsole toGroup:self.debugConsoleGroupName];
+ return;
+ }
+
+ // Need to maintain the recieveBuffer, remove the bytes from it which we just processed.
+ self.recieveBuffer = [[self.recieveBuffer subdataWithRange:NSMakeRange(messageSize, self.recieveBuffer.length - messageSize)] mutableCopy];
+
+ // Pass on ultimate disposition of the message to the message router.
+ dispatch_async(_recieveQueue, ^{
+ [self.messageRouter handleRecievedMessage:message];
+ });
+
+ // Call recursively until the buffer is empty or incomplete message is encountered
+ if (self.recieveBuffer.length > 0)
+ [self processMessages];
+}
+
+- (void)sendHeartbeat {
+ SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:self.version];
+ header.frameType = SDLFrameType_Control;
+ header.serviceType = 0;
+ header.frameData = SDLFrameData_Heartbeat;
+ header.sessionID = self.sessionID;
+
+ SDLProtocolMessage *message = [SDLProtocolMessage messageWithHeader:header andPayload:nil];
+
+ [self sendDataToTransport:message.data withPriority:header.serviceType];
+
+}
+
+
+#pragma mark - SDLProtocolListener Implementation
+- (void)handleProtocolSessionStarted:(SDLServiceType)serviceType sessionID:(Byte)sessionID version:(Byte)version {
+ self.sessionID = sessionID;
+ self.maxVersionSupportedByHeadUnit = version;
+ self.version = MIN(self.maxVersionSupportedByHeadUnit, MAX_VERSION_TO_SEND);
+
+ if (self.version >= 3) {
+ // start hearbeat
+ }
+
+ [self.protocolDelegate handleProtocolSessionStarted:serviceType sessionID:sessionID version:version];
+}
+
+- (void)onProtocolMessageReceived:(SDLProtocolMessage *)msg {
+ [self.protocolDelegate onProtocolMessageReceived:msg];
+}
+
+- (void)onProtocolOpened {
+ [self.protocolDelegate onProtocolOpened];
+}
+
+- (void)onProtocolClosed {
+ [self.protocolDelegate onProtocolClosed];
+}
+
+- (void)onError:(NSString *)info exception:(NSException *)e {
+ [self.protocolDelegate onError:info exception:e];
+}
+
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolHeader.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolHeader.h
new file mode 100644
index 000000000..25bc166ac
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolHeader.h
@@ -0,0 +1,53 @@
+// SDLSmartDeviceLinkProtocolHeader.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+@import Foundation;
+
+
+typedef NS_ENUM(UInt8, SDLFrameType) {
+ SDLFrameType_Control = 0,
+ SDLFrameType_Single = 1,
+ SDLFrameType_First = 2,
+ SDLFrameType_Consecutive = 3
+};
+
+typedef NS_ENUM(UInt8, SDLServiceType) {
+ SDLServiceType_RPC = 7,
+ SDLServiceType_BulkData = 0xF,
+};
+
+typedef NS_ENUM(UInt8, SDLFrameData) {
+ SDLFrameData_Heartbeat = 0,
+ SDLFrameData_StartSession = 1,
+ SDLFrameData_StartSessionACK = 2,
+ SDLFrameData_StartSessionNACK = 3,
+ SDLFrameData_EndSession = 4,
+ SDLFrameData_SingleFrame = 0,
+ SDLFrameData_FirstFrame = 0,
+ SDLFrameData_ConsecutiveLastFrame = 0
+};
+
+
+@interface SDLProtocolHeader : NSObject <NSCopying> {
+ UInt8 _version;
+ NSUInteger _size;
+}
+
+@property (assign, readonly) UInt8 version;
+@property (assign, readonly) NSUInteger size;
+@property (assign) BOOL compressed;
+@property (assign) SDLFrameType frameType;
+@property (assign) SDLServiceType serviceType;
+@property (assign) SDLFrameData frameData;
+@property (assign) UInt8 sessionID;
+@property (assign) UInt32 bytesInPayload;
+
+- (id)init;
+- (id)copyWithZone:(NSZone *)zone;
+- (NSData *)data;
+- (void)parse:(NSData *)data;
+- (NSString *)description;
++ (SDLProtocolHeader *)headerForVersion:(UInt8)version;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolHeader.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolHeader.m
new file mode 100644
index 000000000..64534e316
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolHeader.m
@@ -0,0 +1,57 @@
+// SDLSmartDeviceLinkProtocolHeader.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLProtocolHeader.h"
+#import "SDLV1ProtocolHeader.h"
+#import "SDLV2ProtocolHeader.h"
+
+@implementation SDLProtocolHeader
+
+@synthesize version = _version;
+@synthesize size = _size;
+
+- (id)init {
+ if (self = [super init]) {
+ _version = 0;
+ _size = 0;
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone *)zone {
+ [self doesNotRecognizeSelector:_cmd];
+ return 0;
+}
+
+- (NSData *)data {
+ [self doesNotRecognizeSelector:_cmd];
+ return nil;
+}
+
+- (void)parse:(NSData *)data {
+ [self doesNotRecognizeSelector:_cmd];
+}
+
+- (NSString *)description {
+ NSString* description = [NSString stringWithFormat:@"<%@: %p>", NSStringFromClass([self class]), self];
+ return description;
+}
+
+
++ (SDLProtocolHeader *)headerForVersion:(UInt8)version {
+ if (version == 1) {
+ return [[SDLV1ProtocolHeader alloc] init];
+ }
+
+ if (version == 2) {
+ return [[SDLV2ProtocolHeader alloc] init];
+ }
+
+ // TODO: some error handling here if unknown version is asked for,
+ // but that needs to be balanced against future proofing. i.e. V3.
+ // Requirements around V3 are as yet undefined so give a V2 header
+ return [[SDLV2ProtocolHeader alloc] init];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolListener.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolListener.h
new file mode 100644
index 000000000..4d7988948
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolListener.h
@@ -0,0 +1,20 @@
+// SDLProtocolListener.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+
+#import "SDLProtocolHeader.h"
+@class SDLProtocolMessage;
+
+@protocol SDLProtocolListener
+
+- (void)handleProtocolSessionStarted:(SDLServiceType)serviceType sessionID:(Byte)sessionID version:(Byte)version;
+- (void)onProtocolMessageReceived:(SDLProtocolMessage *)msg;
+
+- (void)onProtocolOpened;
+- (void)onProtocolClosed;
+- (void)onError:(NSString *)info exception:(NSException *)e;
+
+@end
+
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolMessage.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolMessage.h
new file mode 100644
index 000000000..2a1e82f94
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolMessage.h
@@ -0,0 +1,24 @@
+// SDLSmartDeviceLinkProtocolMessage.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLProtocolHeader.h"
+
+
+@interface SDLProtocolMessage : NSObject
+
+@property (strong) SDLProtocolHeader *header;
+@property (strong) NSData *payload;
+@property (strong, readonly) NSData *data;
+
+- (id)init;
++ (id)messageWithHeader:(SDLProtocolHeader*)header andPayload:(NSData *)payload; // Returns a V1 or V2 object
+
+- (NSUInteger)size;
+- (NSString *)description;
+- (NSDictionary *)rpcDictionary; // Use for RPC type messages to obtain the data in a dictionary
+
++ (UInt8)determineVersion:(NSData *)data;
+
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolMessage.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolMessage.m
new file mode 100644
index 000000000..36af04241
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolMessage.m
@@ -0,0 +1,100 @@
+// SDLProtocolMessage.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLProtocolMessage.h"
+#import "SDLV1ProtocolMessage.h"
+#import "SDLV2ProtocolMessage.h"
+#import "SDLRPCPayload.h"
+#import "SDLFunctionID.h"
+
+@interface SDLProtocolMessage ()
+
+@property (strong) NSMutableData *internalBuffer;
+
+@end
+
+@implementation SDLProtocolMessage
+
+// For use in decoding a stream of bytes.
+// Pass in bytes representing message (or beginning of message)
+// Looks at and parses first byte to determine version.
++ (UInt8)determineVersion:(NSData *)data {
+ UInt8 firstByte = ((UInt8*)data.bytes)[0];
+ UInt8 version = firstByte >> 4;
+ return version;
+}
+
+- (id)init {
+ if (self = [super init]) {
+
+ }
+ return self;
+}
+
+- (NSDictionary *)rpcDictionary {
+ [self doesNotRecognizeSelector:_cmd];
+ return nil;
+}
+
+- (NSUInteger)size {
+ return (self.header.size + self.payload.length);
+}
+
+- (NSData *)data {
+ NSMutableData *dataOut = [NSMutableData dataWithCapacity:[self size]];
+ [dataOut appendData:self.header.data];
+ [dataOut appendData:self.payload];
+
+ return dataOut;
+}
+
+- (NSString *)description {
+ // Print the header data.
+ NSMutableString* description = [[NSMutableString alloc] init];
+ [description appendString:self.header.description];
+
+ // If it's an RPC, provide greater detail
+ if (self.header.serviceType == SDLServiceType_RPC && (self.header.frameType == SDLFrameType_Single)) {
+ // version of RPC Message determines how we access the info.
+ if (self.header.version == 2) {
+ SDLRPCPayload *rpcPayload = [SDLRPCPayload rpcPayloadWithData:self.payload];
+ if (rpcPayload) {
+ NSString *functionName = [[[SDLFunctionID alloc] init] getFunctionName:rpcPayload.functionID];
+
+ UInt8 rpcType = rpcPayload.rpcType;
+ NSArray *rpcTypeNames = @[@"Request", @"Response", @"Notification"];
+ NSString *rpcTypeString = nil;
+ if(rpcType >= 0 && rpcType < rpcTypeNames.count) {
+ rpcTypeString = rpcTypeNames[rpcType];
+ }
+ [description appendFormat:@" RPC Info: %@ %@", functionName, rpcTypeString];
+ }
+ } else {
+ // version == 1
+ // turn payload (which is JSON string) into dictionary and extract fields of interest.
+
+ }
+ } else {
+ // Not an RPC, provide generic info.
+ [description appendFormat:@" Payload: %lu bytes.", (unsigned long)self.payload.length];
+ }
+
+ return description;
+}
+
+// Returns a V1 or V2 object
++ (id)messageWithHeader:(SDLProtocolHeader*)header andPayload:(NSData *)payload {
+ SDLProtocolMessage *newMessage = nil;
+
+ UInt8 version = header.version;
+ if (version == 1) {
+ newMessage = [[SDLV1ProtocolMessage alloc] initWithHeader:(SDLProtocolHeader*)header andPayload:(NSData *)payload];
+ } else if (version >= 2) {
+ newMessage = [[SDLV2ProtocolMessage alloc] initWithHeader:(SDLProtocolHeader*)header andPayload:(NSData *)payload];
+ }
+
+ return newMessage;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolMessageAssembler.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolMessageAssembler.h
new file mode 100644
index 000000000..3f45baef2
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolMessageAssembler.h
@@ -0,0 +1,21 @@
+// SDLSmartDeviceLinkProtocolMessageAssembler.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLProtocolMessage.h"
+
+typedef void(^SDLMessageAssemblyCompletionHandler)(BOOL done, SDLProtocolMessage *assembledMessage);
+
+
+@interface SDLProtocolMessageAssembler : NSObject
+
+@property (assign, readonly) UInt8 sessionID;
+@property (assign) UInt32 frameCount; // number of consecutive frames required for reassembly
+@property (assign) UInt32 expectedBytes;
+@property (strong) NSMutableDictionary *parts;
+
+- (id)initWithSessionID:(UInt8)sessionID;
+- (void)handleMessage:(SDLProtocolMessage *)message withCompletionHandler:(SDLMessageAssemblyCompletionHandler)completionHandler;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolMessageAssembler.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolMessageAssembler.m
new file mode 100644
index 000000000..5f9fa837c
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolMessageAssembler.m
@@ -0,0 +1,95 @@
+// SDLSmartDeviceLinkProtocolMessageAssembler.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLProtocolMessageAssembler.h"
+#import "SDLProtocolHeader.h"
+
+@implementation SDLProtocolMessageAssembler
+
+- (id)initWithSessionID:(UInt8)sessionID {
+ if (self = [super init]) {
+ _sessionID = sessionID;
+ }
+ return self;
+}
+
+- (void)handleMessage:(SDLProtocolMessage *)message withCompletionHandler:(SDLMessageAssemblyCompletionHandler)completionHandler {
+
+ // Validate input
+ if (message.header.sessionID != self.sessionID) {
+ NSLog(@"Error: message part sent to wrong assembler.");
+ return;
+ }
+
+ if (self.parts == nil) {
+ self.parts = [NSMutableDictionary new];
+ }
+
+
+ // Determine which frame it is and save it.
+ // Note: frames are numbered 1,2,3, ..., 0
+ // Always 0 for last frame.
+ if (message.header.frameType == SDLFrameType_First) {
+ // If it's the first-frame, extract the meta-data
+ self.expectedBytes = NSSwapBigIntToHost(((UInt32 *)message.payload.bytes)[0]);
+ self.frameCount = NSSwapBigIntToHost(((UInt32 *)message.payload.bytes)[1]);
+ self.parts[@"firstframe"] = message.payload;
+ } else if (message.header.frameType == SDLFrameType_Consecutive) {
+ // Save the frame w/ frame# as the key
+ NSInteger frameNumber = message.header.frameData;
+ NSNumber *frameNumberObj = [NSNumber numberWithUnsignedInteger:frameNumber];
+ self.parts[frameNumberObj] = message.payload;
+ }
+
+
+ //
+ // If we have all the parts, assemble it and execute the completion handler.
+ //
+ SDLProtocolMessage *assembledMessage = nil;
+ if (self.parts.count == self.frameCount + 1) { // +1 since we also require the first-frame
+
+ // Create the header
+ SDLProtocolHeader *header = message.header.copy;
+ header.frameType = SDLFrameType_Single;
+ header.frameData = SDLFrameData_SingleFrame;
+
+
+ // Create the payload
+ NSMutableData *payload = [[NSMutableData alloc] init];
+ for (unsigned int i = 1; i < self.frameCount; i++) {
+ NSData* dataToAppend = [self.parts objectForKey:[NSNumber numberWithUnsignedInt:i]];
+ [payload appendData:dataToAppend];
+ }
+ // Append the last frame, it has a frame # of 0.
+ NSData* dataToAppend = [self.parts objectForKey:[NSNumber numberWithUnsignedInt:0]];
+ [payload appendData:dataToAppend];
+
+ // Validation
+ header.bytesInPayload = (UInt32)payload.length;
+ if (payload.length != self.expectedBytes) {
+ NSLog(@"Warning: collected bytes size of %lu not equal to expected size of %i.", (unsigned long)payload.length, (unsigned int)self.expectedBytes);
+ }
+
+ // Create the message.
+ assembledMessage = [SDLProtocolMessage messageWithHeader:header andPayload:payload];
+
+
+ // Execute completion handler.
+ if (completionHandler != nil) {
+ completionHandler(YES, assembledMessage);
+ }
+
+ // Done with this data, release it.
+ self.parts = nil;
+
+ }
+
+ // Not done, let caller know
+ if (completionHandler != nil) {
+ completionHandler(NO, nil);
+ }
+
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolMessageDisassembler.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolMessageDisassembler.h
new file mode 100644
index 000000000..cbb02a1a0
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolMessageDisassembler.h
@@ -0,0 +1,12 @@
+// SDLSmartDeviceLinkProtocolMessageDisassembler.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLProtocolMessage.h"
+
+@interface SDLProtocolMessageDisassembler : NSObject
+
++ (NSArray *)disassemble:(SDLProtocolMessage *)protocolMessage withLimit:(NSUInteger)mtu;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolMessageDisassembler.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolMessageDisassembler.m
new file mode 100644
index 000000000..380cda59e
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolMessageDisassembler.m
@@ -0,0 +1,86 @@
+// SDLProtocolMessageDisassembler.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLProtocolMessageDisassembler.h"
+
+@implementation SDLProtocolMessageDisassembler
+
+
+// Use to break up a large message into a sequence of smaller messages,
+// each of which is less than 'mtu' number of bytes total size.
++ (NSArray *)disassemble:(SDLProtocolMessage *)incomingMessage withLimit:(NSUInteger)mtu {
+ // Questions:
+ // What message IDs does the current system use? Same messageIDs? Same CorrelationIDs?
+ // What gets simply copied from incoming header to created headers; and what needs adjustment?
+
+ // How big is the message header?
+ NSUInteger headerSize = incomingMessage.header.size;
+
+ // The size of the message is too big to send in one chunk.
+ // So lets break it up.
+ // Just how big IS this message?
+ NSUInteger incomingPayloadSize = (incomingMessage.data.length - headerSize);
+
+ // How many messages do we need to create to hold that many bytes?
+ // Note: this does NOT count the special first message which acts as a descriptor.
+ NSUInteger numberOfMessagesRequired = ceil((float)incomingPayloadSize/(float)(mtu - headerSize));
+
+ // And how many data bytes go in each message?
+ NSUInteger numberOfDataBytesPerMessage = mtu - headerSize;
+
+ // Create the outgoing array to hold the messages we will create.
+ NSMutableArray *outgoingMessages = [NSMutableArray arrayWithCapacity:numberOfMessagesRequired+1];
+
+
+
+ // Create the first message
+ SDLProtocolHeader *firstFrameHeader = [incomingMessage.header copy];
+ firstFrameHeader.frameType = SDLFrameType_First;
+
+ UInt32 payloadData[2];
+ payloadData[0] = CFSwapInt32HostToBig((UInt32)incomingMessage.payload.length);
+ payloadData[1] = CFSwapInt32HostToBig((UInt32)numberOfMessagesRequired);
+ NSMutableData *firstFramePayload = [NSMutableData dataWithBytes:payloadData length:sizeof(payloadData)];
+ firstFrameHeader.bytesInPayload = (UInt32)firstFramePayload.length;
+
+ SDLProtocolMessage *firstMessage = [SDLProtocolMessage messageWithHeader:firstFrameHeader andPayload:firstFramePayload];
+ outgoingMessages[0] = firstMessage;
+
+
+
+ // Create the middle messages (the ones carrying the actual data).
+ for (int n = 0; n < numberOfMessagesRequired - 1; n++) {
+ SDLProtocolHeader *nextFrameHeader = [incomingMessage.header copy];
+ nextFrameHeader.frameType = SDLFrameType_Consecutive;
+ nextFrameHeader.frameData = n+1;
+
+ NSUInteger offsetOfDataForThisFrame = headerSize + (n * numberOfDataBytesPerMessage);
+ NSData *nextFramePayload = [incomingMessage.data subdataWithRange:NSMakeRange(offsetOfDataForThisFrame, numberOfDataBytesPerMessage)];
+ nextFrameHeader.bytesInPayload = (UInt32)nextFramePayload.length;
+
+ SDLProtocolMessage *nextMessage = [SDLProtocolMessage messageWithHeader:nextFrameHeader andPayload:nextFramePayload];
+ outgoingMessages[n+1] = nextMessage;
+ }
+
+
+
+ // Create the last message
+ SDLProtocolHeader *lastFrameHeader = [incomingMessage.header copy];
+ lastFrameHeader.frameType = SDLFrameType_Consecutive;
+ lastFrameHeader.frameData = SDLFrameData_ConsecutiveLastFrame;
+
+ NSUInteger numberOfMessagesCreatedSoFar = numberOfMessagesRequired - 1;
+ NSUInteger numberOfDataBytesSentSoFar = numberOfMessagesCreatedSoFar * numberOfDataBytesPerMessage;
+ NSUInteger numberOfDataBytesInLastMessage = incomingPayloadSize - numberOfDataBytesSentSoFar;
+ NSUInteger offsetOfDataForLastFrame = headerSize + numberOfDataBytesSentSoFar;
+ NSData *lastFramePayload = [incomingMessage.data subdataWithRange:NSMakeRange(offsetOfDataForLastFrame, numberOfDataBytesInLastMessage)];
+ lastFrameHeader.bytesInPayload = (UInt32)lastFramePayload.length;
+
+ SDLProtocolMessage *lastMessage = [SDLProtocolMessage messageWithHeader:lastFrameHeader andPayload:lastFramePayload];
+ outgoingMessages[numberOfMessagesRequired] = lastMessage;
+
+ return outgoingMessages;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolRecievedMessageRouter.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolRecievedMessageRouter.h
new file mode 100644
index 000000000..9b85e7c77
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolRecievedMessageRouter.h
@@ -0,0 +1,16 @@
+// SDLProtocolRecievedMessageRouter.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLProtocolListener.h"
+@class SDLProtocolMessage;
+
+
+@interface SDLProtocolRecievedMessageRouter : NSObject
+
+@property (weak) id<SDLProtocolListener> delegate;
+
+- (void)handleRecievedMessage:(SDLProtocolMessage *)message;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolRecievedMessageRouter.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolRecievedMessageRouter.m
new file mode 100644
index 000000000..661acd7d8
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProtocolRecievedMessageRouter.m
@@ -0,0 +1,93 @@
+// SDLProtocolRecievedMessageRouter.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+//
+// This class gets handed the SDLProtocol messages as they are recieved
+// and decides what happens to them and where they are sent on to.
+
+#import "SDLProtocolRecievedMessageRouter.h"
+#import "SDLProtocolMessage.h"
+#import "SDLProtocolMessageAssembler.h"
+#import "SDLDebugTool.h"
+
+
+
+@interface SDLProtocolRecievedMessageRouter ()
+
+@property (strong) NSMutableDictionary *messageAssemblers;
+
+- (void)dispatchProtocolMessage:(SDLProtocolMessage *)message;
+- (void)dispatchControlMessage:(SDLProtocolMessage *)message;
+- (void)dispatchMultiPartMessage:(SDLProtocolMessage *)message;
+
+@end
+
+
+@implementation SDLProtocolRecievedMessageRouter
+
+- (id)init {
+ if (self = [super init]) {
+ self.messageAssemblers = [NSMutableDictionary dictionaryWithCapacity:2];
+ }
+ return self;
+}
+
+- (void)handleRecievedMessage:(SDLProtocolMessage *)message {
+
+ SDLFrameType frameType = message.header.frameType;
+
+ switch (frameType) {
+ case SDLFrameType_Single:
+ [self dispatchProtocolMessage:message];
+ break;
+
+ case SDLFrameType_Control:
+ [self dispatchControlMessage:message];
+ break;
+
+ case SDLFrameType_First:
+ case SDLFrameType_Consecutive:
+ [self dispatchMultiPartMessage:message];
+ break;
+
+ default:
+ break;
+ }
+
+}
+
+- (void)dispatchProtocolMessage:(SDLProtocolMessage *)message {
+ [self.delegate onProtocolMessageReceived:message];
+}
+
+- (void)dispatchControlMessage:(SDLProtocolMessage *)message {
+
+ if (message.header.frameData == SDLFrameData_StartSessionACK) {
+ [self.delegate handleProtocolSessionStarted:message.header.serviceType
+ sessionID:message.header.sessionID
+ version:message.header.version];
+ }
+}
+
+- (void)dispatchMultiPartMessage:(SDLProtocolMessage *)message {
+
+ // Pass multipart messages to an assembler and call delegate when done.
+ NSNumber *sessionID = [NSNumber numberWithUnsignedChar:message.header.sessionID];
+
+ SDLProtocolMessageAssembler *assembler = self.messageAssemblers[sessionID];
+ if (assembler == nil) {
+ assembler = [[SDLProtocolMessageAssembler alloc] initWithSessionID:message.header.sessionID];
+ self.messageAssemblers[sessionID] = assembler;
+ }
+
+ SDLMessageAssemblyCompletionHandler completionHandler = ^void(BOOL done, SDLProtocolMessage *assembledMessage) {
+ if (done) {
+ [self dispatchProtocolMessage:assembledMessage];
+ }
+ };
+ [assembler handleMessage:message withCompletionHandler:completionHandler];
+
+}
+
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLProxy.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProxy.h
new file mode 100644
index 000000000..d224536bc
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProxy.h
@@ -0,0 +1,49 @@
+// SDLProxy.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+// Version: ##Version##
+
+
+#import "SDLProtocol.h"
+#import "SDLProxyListener.h"
+#import "SDLRPCRequestFactory.h"
+#import "SDLTransport.h"
+
+@interface SDLProxy : NSObject<SDLProtocolListener, NSStreamDelegate> {
+ Byte _version;
+ Byte rpcSessionID;
+ Byte bulkSessionID;
+ BOOL isConnected;
+ BOOL alreadyDestructed;
+
+}
+
+@property (strong) NSObject<SDLInterfaceProtocol>* protocol;
+@property (strong) NSObject<SDLTransport>* transport;
+@property (strong) NSMutableArray* proxyListeners;
+@property (strong) NSTimer* handshakeTimer;
+@property (strong) NSString *debugConsoleGroupName;
+
+-(id) initWithTransport:(NSObject<SDLTransport>*) transport protocol:(NSObject<SDLInterfaceProtocol>*) protocol delegate:(NSObject<SDLProxyListener>*) delegate;
+
+-(void) dispose;
+-(void) addDelegate:(NSObject<SDLProxyListener>*) delegate;
+
+-(void) sendRPCRequest:(SDLRPCMessage*) msg;
+-(void) handleRpcMessage:(NSDictionary*) msg;
+
+-(NSString*) getProxyVersion;
+
+-(void) destroyHandshakeTimer;
+-(void) handleProtocolMessage:(SDLProtocolMessage*) msgData;
+
++(void)enableSiphonDebug;
++(void)disableSiphonDebug;
+
+-(NSObject<SDLTransport>*)getTransport;
+-(NSObject<SDLInterfaceProtocol>*)getProtocol;
+
+- (void)putFileStream:(NSInputStream*)inputStream :(SDLPutFile*)putFileRPCRequest __deprecated_msg("use -putFileStream:withRequest: instead");
+- (void)putFileStream:(NSInputStream*)inputStream withRequest:(SDLPutFile*)putFileRPCRequest;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLProxy.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProxy.m
new file mode 100644
index 000000000..91d8fd448
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProxy.m
@@ -0,0 +1,594 @@
+// SDLProxy.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import <ExternalAccessory/ExternalAccessory.h>
+#import <objc/runtime.h>
+#import "SDLDebugTool.h"
+#import "SDLEncodedSyncPData.h"
+#import "SDLFunctionID.h"
+#import "SDLJsonDecoder.h"
+#import "SDLJsonEncoder.h"
+#import "SDLLanguage.h"
+#import "SDLNames.h"
+#import "SDLSiphonServer.h"
+#import "SDLProxy.h"
+#import "SDLSystemRequest.h"
+#import "SDLRPCPayload.h"
+#import "SDLPolicyDataParser.h"
+#import "SDLLockScreenManager.h"
+
+
+#define VERSION_STRING @"SmartDeviceLink-20140929-090241-LOCAL-iOS"
+typedef void(^SDLCustomTaskCompletionHandler)(NSData *data, NSURLResponse *response, NSError *error);
+
+
+@interface SDLProxy ()
+
+{
+ SDLLockScreenManager *lsm;
+}
+- (void)invokeMethodOnDelegates:(SEL)aSelector withObject:(id)object;
+- (void)notifyProxyClosed;
+- (void)handleProtocolMessage:(SDLProtocolMessage *)msgData;
+- (void)OESPHTTPRequestCompletionHandler:(NSData *)data response:(NSURLResponse *)response error:(NSError *)error;
+- (void)OSRHTTPRequestCompletionHandler:(NSData *)data response:(NSURLResponse *)response error:(NSError *)error;
+
+@end
+
+
+
+@implementation SDLProxy
+
+const float handshakeTime = 30.0;
+const float notifyProxyClosedDelay = 0.1;
+const int POLICIES_CORRELATION_ID = 65535;
+
+
+#pragma mark - Object lifecycle
+- (id)initWithTransport:(NSObject<SDLTransport> *)theTransport protocol:(NSObject<SDLInterfaceProtocol> *)theProtocol delegate:(NSObject<SDLProxyListener> *)theDelegate {
+ if (self = [super init]) {
+ _debugConsoleGroupName = @"default";
+
+
+ lsm = [SDLLockScreenManager new];
+
+ rpcSessionID = 0;
+ alreadyDestructed = NO;
+
+ self.proxyListeners = [[NSMutableArray alloc] initWithObjects:theDelegate, nil];
+ self.protocol = theProtocol;
+ self.transport = theTransport;
+ self.transport.delegate = self.protocol;
+ self.protocol.protocolDelegate = self;
+ self.protocol.transport = self.transport;
+ [self.transport connect];
+
+ [[EAAccessoryManager sharedAccessoryManager] registerForLocalNotifications];
+
+ }
+
+ return self;
+}
+
+-(void) destructObjects {
+ if(!alreadyDestructed) {
+ alreadyDestructed = YES;
+
+ [[EAAccessoryManager sharedAccessoryManager] unregisterForLocalNotifications];
+
+ self.transport = nil;
+ self.protocol = nil;
+ self.proxyListeners = nil;
+
+ [self destroyHandshakeTimer];
+ }
+}
+
+-(void) dispose {
+ [self destructObjects];
+}
+
+-(void) dealloc {
+ [self destructObjects];
+}
+
+-(void) notifyProxyClosed {
+ if (isConnected) {
+ isConnected = NO;
+ [self invokeMethodOnDelegates:@selector(onProxyClosed) withObject:nil];
+ }
+}
+
+
+#pragma mark - Pseudo properties
+- (NSObject<SDLTransport> *)getTransport {
+ return self.transport;// not needed except for backwards compatability?
+}
+
+- (NSObject<SDLInterfaceProtocol> *)getProtocol {
+ return self.protocol;// not needed except for backwards compatability?
+}
+
+- (NSString *)getProxyVersion {
+ return VERSION_STRING;
+}
+
+- (NSString *)proxyVersion { // How it should have been named.
+ return VERSION_STRING;
+}
+
+
+#pragma mark - Handshake Timer
+- (void)handshakeTimerFired {
+ [SDLDebugTool logInfo:@"RPC Initial Handshake Timeout" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+ [self destroyHandshakeTimer];
+ [self performSelector:@selector(notifyProxyClosed) withObject:nil afterDelay:notifyProxyClosedDelay];
+}
+
+-(void)destroyHandshakeTimer {
+ if (self.handshakeTimer != nil) {
+ [self.handshakeTimer invalidate];
+ self.handshakeTimer = nil;
+ }
+}
+
+
+#pragma mark - SDLProtocolListener Implementation
+- (void) onProtocolOpened {
+ isConnected = YES;
+ [SDLDebugTool logInfo:@"StartSession (request)" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+ [self.protocol sendStartSessionWithType:SDLServiceType_RPC];
+
+ [self destroyHandshakeTimer];
+ self.handshakeTimer = [NSTimer scheduledTimerWithTimeInterval:handshakeTime target:self selector:@selector(handshakeTimerFired) userInfo:nil repeats:NO];
+}
+
+-(void) onProtocolClosed {
+ [self notifyProxyClosed];
+}
+
+-(void) onError:(NSString*) info exception:(NSException*) e {
+ [self invokeMethodOnDelegates:@selector(onError:) withObject:e];
+}
+
+- (void)handleProtocolSessionStarted:(SDLServiceType)sessionType sessionID:(Byte)sessionID version:(Byte)maxVersionForModule {
+ NSString *logMessage = [NSString stringWithFormat:@"StartSession (response)\nSessionId: %d", sessionID];
+ [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+ if (_version <= 1) {
+ if (maxVersionForModule == 2) {
+ _version = maxVersionForModule;
+ }
+ }
+
+ if (sessionType == SDLServiceType_RPC || _version == 2) {
+ rpcSessionID = sessionID;
+ [self invokeMethodOnDelegates:@selector(onProxyOpened) withObject:nil];
+ }
+}
+
+- (void) onProtocolMessageReceived:(SDLProtocolMessage*) msgData {
+ @try {
+ [self handleProtocolMessage:msgData];
+ }
+ @catch (NSException * e) {
+ NSString *logMessage = [NSString stringWithFormat:@"Proxy: Failed to handle protocol message %@", e];
+ [SDLDebugTool logInfo:logMessage withType:SDLDebugType_Debug toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ }
+}
+
+
+#pragma mark - Message sending and recieving
+-(void) sendRPCRequest:(SDLRPCMessage*) msg {
+ if ([msg isKindOfClass:SDLRPCRequest.class]) {
+ [self sendRPCRequestPrivate:(SDLRPCRequest *)msg];
+ }
+}
+
+- (void)sendRPCRequestPrivate:(SDLRPCRequest *)rpcRequest {
+ @try {
+ [self.protocol sendRPCRequest:rpcRequest];
+ } @catch (NSException * e) {
+ NSString *logMessage = [NSString stringWithFormat:@"Proxy: Failed to send RPC request: %@", rpcRequest.name];
+ [SDLDebugTool logInfo:logMessage withType:SDLDebugType_Debug toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ }
+}
+
+- (void)handleProtocolMessage:(SDLProtocolMessage *)incomingMessage {
+ // Convert protocol message to dictionary
+ NSDictionary* rpcMessageAsDictionary = [incomingMessage rpcDictionary];
+ [self handleRpcMessage:rpcMessageAsDictionary];
+}
+
+
+// NOTE: This is getting rather large, excellent candidate for refactoring.
+-(void) handleRpcMessage:(NSDictionary*) msg {
+ NSString *logMessage = nil;
+
+ SDLRPCMessage* rpcMsg = [[SDLRPCMessage alloc] initWithDictionary:(NSMutableDictionary*) msg];
+ NSString* functionName = [rpcMsg getFunctionName];
+ NSString* messageType = [rpcMsg messageType];
+
+ if ([functionName isEqualToString:NAMES_OnAppInterfaceUnregistered]
+ || [functionName isEqualToString:NAMES_UnregisterAppInterface]) {
+ logMessage = [NSString stringWithFormat:@"Unregistration forced by module. %@", msg];
+ [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ [self notifyProxyClosed];
+ return;
+ }
+
+ if ([messageType isEqualToString:NAMES_response]) {
+ bool notGenericResponseMessage = ![functionName isEqualToString:@"GenericResponse"];
+ if(notGenericResponseMessage) functionName = [NSString stringWithFormat:@"%@Response", functionName];
+ }
+
+
+ if ([functionName isEqualToString:@"RegisterAppInterfaceResponse"]) {
+ // Turn off the timer, the handshake has succeeded
+ [self destroyHandshakeTimer];
+
+ //Print Proxy Version To Console
+ logMessage = [NSString stringWithFormat:@"Framework Version: %@", [self getProxyVersion]];
+ [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ }
+
+
+ if ([functionName isEqualToString:@"EncodedSyncPDataResponse"]) {
+ [SDLDebugTool logInfo:@"EncodedSyncPData (response)" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ }
+
+
+ // Intercept OnEncodedSyncPData. If URL != nil, perform HTTP Post and don't pass the notification to FMProxyListeners
+ if ([functionName isEqualToString:@"OnEncodedSyncPData"]) {
+ logMessage = [NSString stringWithFormat:@"OnEncodedSyncPData (notification)\n%@", msg];
+ [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+ NSString *urlString = (NSString *) [rpcMsg getParameters:@"URL"];
+ NSDictionary *encodedSyncPData = (NSDictionary *)[rpcMsg getParameters:@"data"];
+ NSNumber *encodedSyncPTimeout = (NSNumber *) [rpcMsg getParameters:@"Timeout"];
+
+ if (urlString && encodedSyncPData && encodedSyncPTimeout) {
+ [self sendEncodedSyncPData:encodedSyncPData toURL:urlString withTimeout:encodedSyncPTimeout];
+ }
+
+ return;
+ }
+
+ // Intercept OnSystemRequest.
+ if ([functionName isEqualToString:@"OnSystemRequest"]) {
+
+ [SDLDebugTool logInfo:@"OnSystemRequest (notification)" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+ SDLOnSystemRequest* sysRpcMsg = [[SDLOnSystemRequest alloc] initWithDictionary:(NSMutableDictionary*) msg];
+ SDLRequestType *requestType = sysRpcMsg.requestType;
+ NSString *urlString = sysRpcMsg.url;
+ SDLFileType *fileType = sysRpcMsg.fileType;
+
+ if (requestType == [SDLRequestType PROPRIETARY])
+ {
+ // Validate input
+ if (urlString == nil)
+ {
+ [SDLDebugTool logInfo:@"OnSystemRequest (notification) failure: url is nil" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ return;
+ }
+ if (fileType != [SDLFileType JSON])
+ {
+ [SDLDebugTool logInfo:@"OnSystemRequest (notification) failure: file type is not JSON" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ return;
+ }
+
+ // Get data dictionary from the bulkData
+ NSDictionary *notificationDictionary = nil;
+ @try {
+ NSError *errorJSONSerializeNotification = nil;
+ notificationDictionary = [NSJSONSerialization JSONObjectWithData:sysRpcMsg.bulkData options:kNilOptions error:&errorJSONSerializeNotification];
+ if (errorJSONSerializeNotification) {
+ [SDLDebugTool logInfo:@"OnSystemRequest failure: notification data is not valid JSON." withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ return;
+ }
+ }
+ @catch (NSException *exception) {
+ logMessage = [NSString stringWithFormat:@"Exception converting bulk data to NSDictionary. Data:\n%@", [[NSString alloc] initWithData:sysRpcMsg.bulkData encoding:NSUTF8StringEncoding]];
+ [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+ [exception raise]; // rethrow
+ }
+
+
+ // Extract data from the dictionary
+ NSDictionary *requestData = notificationDictionary[@"HTTPRequest"];
+ NSDictionary *headers = requestData[@"headers"];
+ NSString *contentType = headers[@"ContentType"];
+ NSTimeInterval timeout = [headers[@"ConnectTimeout"] doubleValue];
+ NSString *method = headers[@"RequestMethod"];
+ NSString *bodyString = requestData[@"body"];
+ NSData *bodyData = [bodyString dataUsingEncoding:NSUTF8StringEncoding];
+
+
+ // Parse and display the policy data.
+ SDLPolicyDataParser *pdp = [[SDLPolicyDataParser alloc] init];
+ NSData *policyData = [pdp unwrap:bodyData];
+ if (policyData) {
+ [pdp parsePolicyData:policyData];
+ logMessage = [NSString stringWithFormat:@"Policy Data from Module\n%@", pdp];
+ [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ }
+
+
+ // HTTP Request configuration
+ NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
+ NSURLSession *session = [NSURLSession sessionWithConfiguration:config];
+ NSURL *url = [NSURL URLWithString:urlString];
+ NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
+ [request setValue:contentType forHTTPHeaderField:@"content-type"];
+ request.timeoutInterval = timeout;
+ request.HTTPMethod = method;
+
+
+ // Logging
+ logMessage = [NSString stringWithFormat:@"OnSystemRequest (HTTP Request) to URL %@", urlString];
+ [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+
+ // Send the HTTP Request
+ SDLCustomTaskCompletionHandler handler = ^void(NSData *data, NSURLResponse *response, NSError *error)
+ {
+ [self OSRHTTPRequestCompletionHandler:data response:response error:error];
+ };
+ NSURLSessionUploadTask *uploadTask = [session uploadTaskWithRequest:request fromData:bodyData completionHandler:handler];
+ [uploadTask resume];
+
+ return;
+ }
+
+ } // End of OnSystemRequest
+
+ if ([functionName isEqualToString:@"SystemRequestResponse"]) {
+ logMessage = [NSString stringWithFormat:@"SystemRequest (response)\n%@", msg];
+ [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ return;
+ }
+
+
+
+ // From the function name, create the corresponding RPCObject and initialize it
+ NSString* functionClassName = [NSString stringWithFormat:@"SDL%@", functionName];
+ SDLRPCMessage *functionObject = [[NSClassFromString(functionClassName) alloc] initWithDictionary:msg];
+// SDLRPCMessage *functionObject = [[NSClassFromString(functionClassName) alloc] init];
+// NSObject* rpcCallbackObject = [functionObject initWithDictionary:[msg mutableCopy]];
+
+ logMessage = [NSString stringWithFormat:@"%@", functionObject];
+ [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+ // Formulate the name of the method to call on the listeners and call it, passing the RPC Object
+ NSString* handlerName = [NSString stringWithFormat:@"on%@:", functionName];
+ SEL handlerSelector = NSSelectorFromString(handlerName);
+ [self invokeMethodOnDelegates:handlerSelector withObject:functionObject];
+
+
+ // When an OnHMIStatus notification comes in, after passing it on (above), generate an "OnLockScreenNotification"
+ if ([functionName isEqualToString:@"OnHMIStatus"]) {
+ NSString *statusString = (NSString *)[rpcMsg getParameters:NAMES_hmiLevel];
+ SDLHMILevel *hmiLevel = [SDLHMILevel valueOf:statusString];
+ lsm.hmiLevel = hmiLevel;
+
+ SEL callbackSelector = NSSelectorFromString(@"onOnLockScreenNotification:");
+ [self invokeMethodOnDelegates:callbackSelector withObject:lsm.lockScreenStatusNotification];
+ }
+
+ // When an OnDriverDistraction notification comes in, after passing it on (above), generate an "OnLockScreenNotification"
+ if ([functionName isEqualToString:@"OnDriverDistraction"]) {
+ NSString *stateString = (NSString *)[rpcMsg getParameters:NAMES_state];
+ BOOL bState = [stateString isEqualToString:@"DD_ON"]?YES:NO;
+ lsm.bDriverDistractionStatus = bState;
+
+ SEL callbackSelector = NSSelectorFromString(@"onOnLockScreenNotification:");
+ [self invokeMethodOnDelegates:callbackSelector withObject:lsm.lockScreenStatusNotification];
+ }
+
+}
+
+
+#pragma mark - Delegate management
+-(void) addDelegate:(NSObject<SDLProxyListener>*) delegate {
+ @synchronized(self.proxyListeners) {
+ [self.proxyListeners addObject:delegate];
+ }
+}
+
+- (void)invokeMethodOnDelegates:(SEL)aSelector withObject:(id)object {
+ [self.proxyListeners enumerateObjectsUsingBlock:^(id listener, NSUInteger idx, BOOL *stop) {
+ if ([(NSObject *)listener respondsToSelector:aSelector]) {
+ [(NSObject *)listener performSelectorOnMainThread:aSelector withObject:object waitUntilDone:NO];
+ }
+ }];
+}
+
+
+#pragma mark - System Request and SyncP handling
+-(void)sendEncodedSyncPData:(NSDictionary*)encodedSyncPData toURL:(NSString*)urlString withTimeout:(NSNumber*) timeout{
+
+ // Configure HTTP URL & Request
+ NSURL *url = [NSURL URLWithString:urlString];
+ NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
+ request.HTTPMethod = @"POST";
+
+ // Configure HTTP Session
+ NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
+ config.HTTPAdditionalHeaders = @{@"Content-Type": @"application/json"};
+ config.timeoutIntervalForRequest = 60;
+ NSURLSession *session = [NSURLSession sessionWithConfiguration:config];
+
+ // Prepare the data in the required format
+ NSString *encodedSyncPDataString = [[NSString stringWithFormat:@"%@", encodedSyncPData] componentsSeparatedByString:@"\""][1];
+ NSArray *array = [NSArray arrayWithObject:encodedSyncPDataString];
+ NSDictionary *dictionary = @{@"data": array};
+ NSError *JSONSerializationError = nil;
+ NSData *data = [NSJSONSerialization dataWithJSONObject:dictionary options:kNilOptions error:&JSONSerializationError];
+ if (JSONSerializationError) {
+ NSString *logMessage = [NSString stringWithFormat:@"Error formatting data for HTTP Request. %@", JSONSerializationError];
+ [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ return;
+ }
+
+ // Create the completion handler to be executed upon response
+ SDLCustomTaskCompletionHandler handler = ^void(NSData *data, NSURLResponse *response, NSError *error)
+ {
+ [self OESPHTTPRequestCompletionHandler:data response:response error:error];
+ };
+
+ // Send the HTTP Request
+ [SDLDebugTool logInfo:@"OnEncodedSyncPData (HTTP request)" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ NSURLSessionUploadTask *uploadTask = [session uploadTaskWithRequest:request fromData:data completionHandler:handler];
+ [uploadTask resume];
+
+}
+
+// Handle the OnEncodedSyncPData HTTP Response
+- (void)OESPHTTPRequestCompletionHandler:(NSData *)data response:(NSURLResponse *)response error:(NSError *)error {
+ // Sample of response: {"data":["SDLKGLSDKFJLKSjdslkfjslkJLKDSGLKSDJFLKSDJF"]}
+ [SDLDebugTool logInfo:@"OnEncodedSyncPData (HTTP response)" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+ // Validate response data.
+ if (data == nil || data.length == 0) {
+ [SDLDebugTool logInfo:@"OnEncodedSyncPData (HTTP response) failure: no data returned" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ return;
+ }
+
+ // Convert data to RPCRequest
+ NSError *JSONConversionError = nil;
+ NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&JSONConversionError];
+ if (!JSONConversionError) {
+ SDLEncodedSyncPData *request = [[SDLEncodedSyncPData alloc] init];
+ request.correlationID = [NSNumber numberWithInt:POLICIES_CORRELATION_ID];
+ request.data = [responseDictionary objectForKey:@"data"];
+
+ [self sendRPCRequestPrivate:request];
+ }
+
+}
+
+// Handle the OnSystemRequest HTTP Response
+- (void)OSRHTTPRequestCompletionHandler:(NSData *)data response:(NSURLResponse *)response error:(NSError *)error {
+
+ NSString *logMessage = nil;
+
+ if (error) {
+ logMessage = [NSString stringWithFormat:@"OnSystemRequest (HTTP response) = ERROR: %@", error];
+ [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ return;
+ }
+
+ if (data == nil || data.length == 0) {
+ [SDLDebugTool logInfo:@"OnSystemRequest (HTTP response) failure: no data returned" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ return;
+ }
+
+ // Show the HTTP response
+ [SDLDebugTool logInfo:@"OnSystemRequest (HTTP response)" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+
+ // Create the SystemRequest RPC to send to module.
+ SDLSystemRequest *request = [[SDLSystemRequest alloc] init];
+ request.correlationID = [NSNumber numberWithInt:POLICIES_CORRELATION_ID];
+ request.requestType = [SDLRequestType PROPRIETARY];
+ request.bulkData = data;
+
+ // Parse and display the policy data.
+ SDLPolicyDataParser *pdp = [[SDLPolicyDataParser alloc] init];
+ NSData *policyData = [pdp unwrap:data];
+ if (policyData) {
+ [pdp parsePolicyData:policyData];
+ logMessage = [NSString stringWithFormat:@"Policy Data from Cloud\n%@", pdp];
+ [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ }
+
+ // Send and log RPC Request
+ logMessage = [NSString stringWithFormat:@"SystemRequest (request)\n%@\nData length=%lu", [request serializeAsDictionary:2], (unsigned long)data.length ];
+ [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ [self sendRPCRequestPrivate:request];
+
+}
+
+
+#pragma mark - PutFile Streaming
+- (void)putFileStream:(NSInputStream*)inputStream :(SDLPutFile*)putFileRPCRequest
+{
+ [self putFileStream:inputStream withRequest:putFileRPCRequest];
+}
+
+- (void)putFileStream:(NSInputStream *)inputStream withRequest:(SDLPutFile *)putFileRPCRequest
+{
+ inputStream.delegate = self;
+ objc_setAssociatedObject(inputStream, @"SDLPutFile", putFileRPCRequest, OBJC_ASSOCIATION_RETAIN);
+ objc_setAssociatedObject(inputStream, @"BaseOffset", [putFileRPCRequest offset], OBJC_ASSOCIATION_RETAIN);
+
+ [inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
+ [inputStream open];
+}
+
+- (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode
+{
+
+ switch(eventCode)
+ {
+ case NSStreamEventHasBytesAvailable:
+ {
+ // Grab some bytes from the stream and send them in a SDLPutFile RPC Request
+ NSUInteger currentStreamOffset = [[stream propertyForKey:NSStreamFileCurrentOffsetKey] unsignedIntegerValue];
+
+ const int bufferSize = 1024;
+ uint8_t buf[bufferSize];
+ NSUInteger len = [(NSInputStream *)stream read:buf maxLength:bufferSize];
+ if(len > 0)
+ {
+ NSData* data = [NSData dataWithBytes:buf length:len];
+ NSUInteger baseOffset = [(NSNumber*)objc_getAssociatedObject(stream, @"BaseOffset") unsignedIntegerValue];
+ NSUInteger newOffset = baseOffset + currentStreamOffset;
+
+ SDLPutFile* putFileRPCRequest = (SDLPutFile*)objc_getAssociatedObject(stream, @"SDLPutFile");
+ [putFileRPCRequest setOffset:[NSNumber numberWithUnsignedInteger:newOffset]];
+ [putFileRPCRequest setLength:[NSNumber numberWithUnsignedInteger:len]];
+ [putFileRPCRequest setBulkData:data];
+
+ [self sendRPCRequest:putFileRPCRequest];
+
+ }
+
+ break;
+ }
+ case NSStreamEventEndEncountered:
+ {
+ // Cleanup the stream
+ [stream close];
+ [stream removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
+
+ break;
+ }
+ case NSStreamEventErrorOccurred:
+ {
+ [SDLDebugTool logInfo:@"Stream Event: Error" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName];
+ break;
+ }
+ default:
+ {
+ break;
+ }
+ }
+}
+
+
+#pragma mark - Siphon management
++(void)enableSiphonDebug {
+ [SDLSiphonServer enableSiphonDebug];
+}
+
++(void)disableSiphonDebug {
+ [SDLSiphonServer disableSiphonDebug];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLProxyFactory.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProxyFactory.h
new file mode 100644
index 000000000..d26d6d0ba
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProxyFactory.h
@@ -0,0 +1,15 @@
+// SDLSyncProxyFactory.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLProxy.h"
+
+@interface SDLProxyFactory : NSObject {}
+
++(SDLProxy*) buildSDLProxyWithListener:(NSObject<SDLProxyListener>*) listener;
+
++(SDLProxy*) buildSDLProxyWithListener:(NSObject<SDLProxyListener>*) listener
+ tcpIPAddress: (NSString*) ipaddress
+ tcpPort: (NSString*) port;
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLProxyFactory.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProxyFactory.m
new file mode 100644
index 000000000..24bd520ac
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProxyFactory.m
@@ -0,0 +1,33 @@
+// SDLSyncProxyFactory.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLProxyFactory.h"
+
+#import "SDLDebugTool.h"
+#import "SDLIAPTransport.h"
+#import "SDLTCPTransport.h"
+#import "SDLProtocol.h"
+
+@implementation SDLProxyFactory
+
++(SDLProxy*) buildSDLProxyWithListener:(NSObject<SDLProxyListener>*) delegate {
+ SDLIAPTransport* transport = [[SDLIAPTransport alloc] init];
+ SDLProtocol* protocol = [[SDLProtocol alloc] init];
+ SDLProxy *ret = [[SDLProxy alloc] initWithTransport:transport protocol:protocol delegate:delegate];
+
+ return ret;
+}
+
++(SDLProxy*) buildSDLProxyWithListener:(NSObject<SDLProxyListener>*) delegate
+ tcpIPAddress: (NSString*) ipaddress
+ tcpPort: (NSString*) port {
+
+ SDLTCPTransport* transport = [[SDLTCPTransport alloc] initWithEndpoint:ipaddress endpointParam:port];
+ SDLProtocol* protocol = [[SDLProtocol alloc] init];
+ SDLProxy *ret = [[SDLProxy alloc] initWithTransport:transport protocol:protocol delegate:delegate];
+
+ return ret;
+}
+
+@end \ No newline at end of file
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLProxyListener.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProxyListener.h
new file mode 100644
index 000000000..1975abf46
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLProxyListener.h
@@ -0,0 +1,129 @@
+// SDLProxyListener.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLAddCommandResponse.h"
+#import "SDLAddSubMenuResponse.h"
+#import "SDLAlertResponse.h"
+#import "SDLChangeRegistrationResponse.h"
+#import "SDLCreateInteractionChoiceSetResponse.h"
+#import "SDLDeleteCommandResponse.h"
+#import "SDLDeleteFileResponse.h"
+#import "SDLDeleteInteractionChoiceSetResponse.h"
+#import "SDLDeleteSubMenuResponse.h"
+#import "SDLDiagnosticMessageResponse.h"
+#import "SDLEncodedSyncPDataResponse.h"
+#import "SDLEndAudioPassThruResponse.h"
+#import "SDLGenericResponse.h"
+#import "SDLGetDTCsResponse.h"
+#import "SDLGetVehicleDataResponse.h"
+#import "SDLListFilesResponse.h"
+#import "SDLLockScreenStatus.h"
+#import "SDLOnAppInterfaceUnregistered.h"
+#import "SDLOnAudioPassThru.h"
+#import "SDLOnButtonEvent.h"
+#import "SDLOnButtonPress.h"
+#import "SDLOnCommand.h"
+#import "SDLOnDriverDistraction.h"
+#import "SDLOnEncodedSyncPData.h"
+#import "SDLOnHashChange.h"
+#import "SDLOnHMIStatus.h"
+#import "SDLOnLanguageChange.h"
+#import "SDLOnPermissionsChange.h"
+#import "SDLOnSyncPData.h"
+#import "SDLOnSystemRequest.h"
+#import "SDLOnVehicleData.h"
+#import "SDLOnTBTClientState.h"
+#import "SDLOnTouchEvent.h"
+#import "SDLOnVehicleData.h"
+#import "SDLPerformAudioPassThruResponse.h"
+#import "SDLPerformInteractionResponse.h"
+#import "SDLPutFileResponse.h"
+#import "SDLReadDIDResponse.h"
+#import "SDLRegisterAppInterfaceResponse.h"
+#import "SDLResetGlobalPropertiesResponse.h"
+#import "SDLScrollableMessageResponse.h"
+#import "SDLSetAppIconResponse.h"
+#import "SDLSetDisplayLayoutResponse.h"
+#import "SDLSetGlobalPropertiesResponse.h"
+#import "SDLSetMediaClockTimerResponse.h"
+#import "SDLShowConstantTBTResponse.h"
+#import "SDLShowResponse.h"
+#import "SDLSliderResponse.h"
+#import "SDLSpeakResponse.h"
+#import "SDLSubscribeButtonResponse.h"
+#import "SDLSubscribeVehicleDataResponse.h"
+#import "SDLSyncPDataResponse.h"
+#import "SDLUpdateTurnListResponse.h"
+#import "SDLUnregisterAppInterfaceResponse.h"
+#import "SDLUnsubscribeButtonResponse.h"
+#import "SDLUnsubscribeVehicleDataResponse.h"
+
+@protocol SDLProxyListener
+
+-(void) onOnDriverDistraction:(SDLOnDriverDistraction*) notification;
+-(void) onOnHMIStatus:(SDLOnHMIStatus*) notification;
+-(void) onProxyClosed;
+-(void) onProxyOpened;
+
+@optional
+
+-(void) onAddCommandResponse:(SDLAddCommandResponse*) response;
+-(void) onAddSubMenuResponse:(SDLAddSubMenuResponse*) response;
+-(void) onAlertResponse:(SDLAlertResponse*) response;
+-(void) onChangeRegistrationResponse:(SDLChangeRegistrationResponse*) response;
+-(void) onCreateInteractionChoiceSetResponse:(SDLCreateInteractionChoiceSetResponse*) response;
+-(void) onDeleteCommandResponse:(SDLDeleteCommandResponse*) response;
+-(void) onDeleteFileResponse:(SDLDeleteFileResponse*) response;
+-(void) onDeleteInteractionChoiceSetResponse:(SDLDeleteInteractionChoiceSetResponse*) response;
+-(void) onDeleteSubMenuResponse:(SDLDeleteSubMenuResponse*) response;
+-(void) onDiagnosticMessageResponse:(SDLDiagnosticMessageResponse*) response;
+-(void) onEncodedSyncPDataRespons:(SDLEncodedSyncPDataResponse*) response;
+-(void) onEndAudioPassThruResponse:(SDLEndAudioPassThruResponse*) response;
+-(void) onError:(NSException*) e;
+-(void) onGenericResponse:(SDLGenericResponse*) response;
+-(void) onGetDTCsResponse:(SDLGetDTCsResponse*) response;
+-(void) onGetVehicleDataResponse:(SDLGetVehicleDataResponse*) response;
+-(void) onListFilesResponse:(SDLListFilesResponse*) response;
+-(void) onOnAppInterfaceUnregistered:(SDLOnAppInterfaceUnregistered*) notification;
+-(void) onOnAudioPassThru:(SDLOnAudioPassThru*) notification;
+-(void) onOnButtonEvent:(SDLOnButtonEvent*) notification;
+-(void) onOnButtonPress:(SDLOnButtonPress*) notification;
+-(void) onOnCommand:(SDLOnCommand*) notification;
+-(void) onOnEncodedSyncPData:(SDLOnEncodedSyncPData*) notification;
+-(void) onOnHashChange:(SDLOnHashChange*) notification;
+-(void) onOnLanguageChange:(SDLOnLanguageChange*) notification;
+-(void) onOnLockScreenNotification:(SDLLockScreenStatus*) notification;
+-(void) onOnPermissionsChange:(SDLOnPermissionsChange*) notification;
+-(void) onOnSyncPData:(SDLOnSyncPData*) notification;
+-(void) onOnSystemRequest:(SDLOnSystemRequest*) notification;
+-(void) onOnTBTClientState:(SDLOnTBTClientState*) notification;
+-(void) onOnTouchEvent:(SDLOnTouchEvent*) notification;
+-(void) onOnVehicleData:(SDLOnVehicleData*) notification;
+-(void) onPerformAudioPassThruResponse:(SDLPerformAudioPassThruResponse*) response;
+-(void) onPerformInteractionResponse:(SDLPerformInteractionResponse*) response;
+-(void) onPutFileResponse:(SDLPutFileResponse*) response;
+-(void) onReadDIDResponse:(SDLReadDIDResponse*) response;
+-(void) onRegisterAppInterfaceResponse:(SDLRegisterAppInterfaceResponse*) response;
+-(void) onResetGlobalPropertiesResponse:(SDLResetGlobalPropertiesResponse*) response;
+-(void) onScrollableMessageResponse:(SDLScrollableMessageResponse*) response;
+-(void) onSetAppIconResponse:(SDLSetAppIconResponse*) response;
+-(void) onSetDisplayLayoutResponse:(SDLSetDisplayLayoutResponse*) response;
+-(void) onSetGlobalPropertiesResponse:(SDLSetGlobalPropertiesResponse*) response;
+-(void) onSetMediaClockTimerResponse:(SDLSetMediaClockTimerResponse*) response;
+-(void) onShowConstantTBTResponse:(SDLShowConstantTBTResponse*) response;
+-(void) onShowResponse:(SDLShowResponse*) response;
+-(void) onSliderResponse:(SDLSliderResponse*) response;
+-(void) onSpeakResponse:(SDLSpeakResponse*) response;
+-(void) onSubscribeButtonResponse:(SDLSubscribeButtonResponse*) response;
+-(void) onSubscribeVehicleDataResponse:(SDLSubscribeVehicleDataResponse*) response;
+-(void) onSyncPDataResponse:(SDLSyncPDataResponse*) response;
+-(void) onUpdateTurnListResponse:(SDLUpdateTurnListResponse*) response;
+-(void) onUnregisterAppInterfaceResponse:(SDLUnregisterAppInterfaceResponse*) response;
+-(void) onUnsubscribeButtonResponse:(SDLUnsubscribeButtonResponse*) response;
+-(void) onUnsubscribeVehicleDataResponse:(SDLUnsubscribeVehicleDataResponse*) response;
+
+
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPutFile.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPutFile.h
new file mode 100644
index 000000000..f3695f95b
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPutFile.h
@@ -0,0 +1,22 @@
+// SDLPutFile.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+#import "SDLFileType.h"
+
+@interface SDLPutFile : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSString* syncFileName;
+@property(strong) SDLFileType* fileType;
+@property(strong) NSNumber* persistentFile;
+@property(strong) NSNumber* systemFile;
+@property(strong) NSNumber* offset;
+@property(strong) NSNumber* length;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPutFile.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPutFile.m
new file mode 100644
index 000000000..7ec3d6f47
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPutFile.m
@@ -0,0 +1,98 @@
+// SDLPutFile.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLPutFile.h"
+
+#import "SDLNames.h"
+
+@implementation SDLPutFile
+
+-(id) init {
+ if (self = [super initWithName:NAMES_PutFile]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setSyncFileName:(NSString*) syncFileName {
+ if (syncFileName != nil) {
+ [parameters setObject:syncFileName forKey:NAMES_syncFileName];
+ } else {
+ [parameters removeObjectForKey:NAMES_syncFileName];
+ }
+}
+
+-(NSString*) syncFileName {
+ return [parameters objectForKey:NAMES_syncFileName];
+}
+
+-(void) setFileType:(SDLFileType*) fileType {
+ if (fileType != nil) {
+ [parameters setObject:fileType forKey:NAMES_fileType];
+ } else {
+ [parameters removeObjectForKey:NAMES_fileType];
+ }
+}
+
+-(SDLFileType*) fileType {
+ NSObject* obj = [parameters objectForKey:NAMES_fileType];
+ if ([obj isKindOfClass:SDLFileType.class]) {
+ return (SDLFileType*)obj;
+ } else {
+ return [SDLFileType valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setPersistentFile:(NSNumber*) persistentFile {
+ if (persistentFile != nil) {
+ [parameters setObject:persistentFile forKey:NAMES_persistentFile];
+ } else {
+ [parameters removeObjectForKey:NAMES_persistentFile];
+ }
+}
+
+-(NSNumber*) persistentFile {
+ return [parameters objectForKey:NAMES_persistentFile];
+}
+
+-(void) setSystemFile:(NSNumber*) systemFile {
+ if (systemFile != nil) {
+ [parameters setObject:systemFile forKey:NAMES_systemFile];
+ } else {
+ [parameters removeObjectForKey:NAMES_systemFile];
+ }
+}
+
+-(NSNumber*) systemFile {
+ return [parameters objectForKey:NAMES_systemFile];
+}
+
+-(void) setOffset:(NSNumber*) offset {
+ if (offset != nil) {
+ [parameters setObject:offset forKey:NAMES_offset];
+ } else {
+ [parameters removeObjectForKey:NAMES_offset];
+ }
+}
+
+-(NSNumber*) offset {
+ return [parameters objectForKey:NAMES_offset];
+}
+
+-(void) setLength:(NSNumber*) length {
+ if (length != nil) {
+ [parameters setObject:length forKey:NAMES_length];
+ } else {
+ [parameters removeObjectForKey:NAMES_length];
+ }
+}
+
+-(NSNumber*) length {
+ return [parameters objectForKey:NAMES_length];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPutFileResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPutFileResponse.h
new file mode 100644
index 000000000..e02fbd80f
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPutFileResponse.h
@@ -0,0 +1,15 @@
+// SDLPutFileResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLPutFileResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* spaceAvailable;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLPutFileResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPutFileResponse.m
new file mode 100644
index 000000000..8c445ebae
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLPutFileResponse.m
@@ -0,0 +1,33 @@
+// SDLPutFileResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLPutFileResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLPutFileResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_PutFile]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setSpaceAvailable:(NSNumber*) spaceAvailable {
+ if (spaceAvailable != nil) {
+ [parameters setObject:spaceAvailable forKey:NAMES_spaceAvailable];
+ } else {
+ [parameters removeObjectForKey:NAMES_spaceAvailable];
+ }
+}
+
+-(NSNumber*) spaceAvailable {
+ return [parameters objectForKey:NAMES_spaceAvailable];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCMessage.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCMessage.h
new file mode 100644
index 000000000..eaf584505
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCMessage.h
@@ -0,0 +1,36 @@
+// SDLRPCMessage.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLRPCStruct : NSObject {
+ NSMutableDictionary* store;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+-(id) init;
+
+-(NSMutableDictionary*) serializeAsDictionary:(Byte) version;
+
+@end
+
+@interface SDLRPCMessage : SDLRPCStruct {
+ NSMutableDictionary* function;
+ NSMutableDictionary* parameters;
+ NSString* messageType;
+}
+
+-(id) initWithName:(NSString*) name;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+-(NSString*) getFunctionName;
+-(void) setFunctionName:(NSString*) functionName;
+-(NSObject*) getParameters:(NSString*) functionName;
+-(void) setParameters:(NSString*) functionName value:(NSObject*) value;
+
+@property(strong) NSData* bulkData;
+@property(strong, readonly) NSString* name;
+@property(strong, readonly) NSString* messageType;
+
+@end \ No newline at end of file
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCMessage.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCMessage.m
new file mode 100644
index 000000000..bde14c65d
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCMessage.m
@@ -0,0 +1,156 @@
+// SDLRPCMessage.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLRPCMessage.h"
+
+#import "SDLNames.h"
+
+@implementation SDLRPCStruct
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super init]) {
+ store = dict;
+ }
+ return self;
+}
+
+-(id) init {
+ if (self = [super init]) {
+ store = [[NSMutableDictionary alloc] init];
+ }
+ return self;
+}
+
+-(NSMutableDictionary*) serializeDictionary:(NSDictionary*) dict version:(Byte) version {
+
+ NSMutableDictionary* ret = [NSMutableDictionary dictionaryWithCapacity:dict.count];
+ for (NSString* key in [dict keyEnumerator]) {
+ NSObject* value = [dict objectForKey:key];
+ if ([value isKindOfClass:SDLRPCStruct.class]) {
+ [ret setObject:[(SDLRPCStruct*)value serializeAsDictionary:version] forKey:key];
+ } else if ([value isKindOfClass:NSDictionary.class]) {
+ [ret setObject:[self serializeDictionary:(NSDictionary*)value version:version] forKey:key];
+ } else if ([value isKindOfClass:NSArray.class]) {
+ NSArray* arrayVal = (NSArray*) value;
+
+ if (arrayVal.count > 0
+ && ([[arrayVal objectAtIndex:0] isKindOfClass:SDLRPCStruct.class])) {
+ NSMutableArray* serializedList = [NSMutableArray arrayWithCapacity:arrayVal.count];
+ for (SDLRPCStruct* serializeable in arrayVal) {
+ [serializedList addObject:[serializeable serializeAsDictionary:version]];
+ }
+ [ret setObject:serializedList forKey:key];
+ } else if (arrayVal.count > 0
+ && ([[arrayVal objectAtIndex:0] isKindOfClass:SDLEnum.class])) {
+ NSMutableArray* serializedList = [NSMutableArray arrayWithCapacity:arrayVal.count];
+ for (SDLEnum* anEnum in arrayVal) {
+ [serializedList addObject:anEnum.value];
+ }
+ [ret setObject:serializedList forKey:key];
+ } else {
+ [ret setObject:value forKey:key];
+ }
+ } else if ([value isKindOfClass:SDLEnum.class]) {
+ [ret setObject:((SDLEnum*)value).value forKey:key];
+ } else {
+ [ret setObject:value forKey:key];
+ }
+ }
+ return ret;
+}
+
+-(NSMutableDictionary*) serializeAsDictionary:(Byte) version {
+ if (version == 2) {
+ NSString* messageType = [[store keyEnumerator] nextObject];
+ NSMutableDictionary* function = [store objectForKey:messageType];
+ if ([function isKindOfClass:NSMutableDictionary.class]) {
+ NSMutableDictionary* parameters = [function objectForKey:NAMES_parameters];
+ return [self serializeDictionary:parameters version:version];
+ } else {
+ return [self serializeDictionary:store version:version];
+ }
+ } else {
+ return [self serializeDictionary:store version:version];
+ }
+}
+
+-(void) dealloc {
+ store = nil;
+}
+
+@end
+
+@implementation SDLRPCMessage
+
+@synthesize messageType;
+
+-(id) initWithName:(NSString*) name {
+ if (self = [super init]) {
+ function = [[NSMutableDictionary alloc] initWithCapacity:3];
+ parameters = [[NSMutableDictionary alloc] init];
+ messageType = NAMES_request;
+ [store setObject:function forKey:messageType];
+ [function setObject:parameters forKey:NAMES_parameters];
+ [function setObject:name forKey:NAMES_operation_name];
+ }
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {
+
+ NSEnumerator *enumerator = [store keyEnumerator];
+ while (messageType = [enumerator nextObject]) {
+ if ([messageType isEqualToString:@"bulkData"] == FALSE){
+ break;
+ }
+ }
+
+ function = [store objectForKey:messageType];
+ parameters = [function objectForKey:NAMES_parameters];
+ self.bulkData = [dict objectForKey:@"bulkData"];
+ }
+ return self;
+}
+
+-(NSString*) getFunctionName {
+ return [function objectForKey:NAMES_operation_name];
+}
+
+-(void) setFunctionName:(NSString*) functionName {
+ if (functionName != nil) {
+ [function setObject:functionName forKey:NAMES_operation_name];
+ } else {
+ [function removeObjectForKey:NAMES_operation_name];
+ }
+}
+
+-(NSObject*) getParameters:(NSString*) functionName {
+ return [parameters objectForKey:functionName];
+}
+
+-(void) setParameters:(NSString*) functionName value:(NSObject*) value {
+ if (value != nil) {
+ [parameters setObject:value forKey:functionName];
+ } else {
+ [parameters removeObjectForKey:functionName];
+ }
+}
+
+-(void) dealloc {
+ function = nil;
+ parameters = nil;
+}
+
+-(NSString*) name {
+ return [function objectForKey:NAMES_operation_name];
+}
+
+- (NSString *)description {
+ NSMutableString *description = [NSMutableString stringWithFormat:@"%@ %@\n%@", self.name, self.messageType, self->parameters];
+
+ return description;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCMessageType.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCMessageType.h
new file mode 100644
index 000000000..b4e427b78
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCMessageType.h
@@ -0,0 +1,17 @@
+// SDLRPCMessageType.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLRPCMessageType : SDLEnum {}
+
++(SDLRPCMessageType*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLRPCMessageType*) request;
++(SDLRPCMessageType*) response;
++(SDLRPCMessageType*) notification;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCMessageType.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCMessageType.m
new file mode 100644
index 000000000..0c53963fb
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCMessageType.m
@@ -0,0 +1,55 @@
+// SDLRPCMessageType.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLRPCMessageType.h"
+
+SDLRPCMessageType* SDLRPCMessageType_request = nil;
+SDLRPCMessageType* SDLRPCMessageType_response = nil;
+SDLRPCMessageType* SDLRPCMessageType_notification = nil;
+
+NSMutableArray* SDLRPCMessageType_values = nil;
+@implementation SDLRPCMessageType
+
++(SDLRPCMessageType*) valueOf:(NSString*) value {
+ for (SDLRPCMessageType* item in SDLRPCMessageType.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLRPCMessageType_values == nil) {
+ SDLRPCMessageType_values = [[NSMutableArray alloc] initWithObjects:
+ SDLRPCMessageType_request,
+ SDLRPCMessageType_response,
+ SDLRPCMessageType_notification,
+ nil];
+ }
+ return SDLRPCMessageType_values;
+}
+
++(SDLRPCMessageType*) request {
+ if (SDLRPCMessageType_request == nil) {
+ SDLRPCMessageType_request = [[SDLRPCMessageType alloc] initWithValue:@"request"];
+ }
+ return SDLRPCMessageType_request;
+}
+
++(SDLRPCMessageType*) response {
+ if (SDLRPCMessageType_response == nil) {
+ SDLRPCMessageType_response = [[SDLRPCMessageType alloc] initWithValue:@"response"];
+ }
+ return SDLRPCMessageType_response;
+}
+
++(SDLRPCMessageType*) notification {
+ if (SDLRPCMessageType_notification == nil) {
+ SDLRPCMessageType_notification = [[SDLRPCMessageType alloc] initWithValue:@"notification"];
+ }
+ return SDLRPCMessageType_notification;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCNotification.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCNotification.h
new file mode 100644
index 000000000..84c19c3b0
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCNotification.h
@@ -0,0 +1,10 @@
+// SDLRPCNotification.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+@interface SDLRPCNotification : SDLRPCMessage {}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCNotification.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCNotification.m
new file mode 100644
index 000000000..239e0f9c3
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCNotification.m
@@ -0,0 +1,9 @@
+// SDLRPCNotification.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLRPCNotification.h"
+
+@implementation SDLRPCNotification
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCPayload.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCPayload.h
new file mode 100644
index 000000000..0b87632d1
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCPayload.h
@@ -0,0 +1,18 @@
+// SDLRPCPayload.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+@import Foundation;
+
+@interface SDLRPCPayload : NSObject
+
+@property (assign) Byte rpcType;
+@property (assign) UInt32 functionID;
+@property (assign) UInt32 correlationID;
+@property (strong) NSData *jsonData;
+@property (strong) NSData *binaryData;
+
+- (NSData *)data;
++ (id)rpcPayloadWithData:(NSData *)data;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCPayload.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCPayload.m
new file mode 100644
index 000000000..2dae348f8
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCPayload.m
@@ -0,0 +1,123 @@
+// SDLRPCPayload.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLRPCPayload.h"
+
+const NSUInteger RPC_HEADER_SIZE = 12;
+
+@implementation SDLRPCPayload
+
+-(id) init {
+ if (self = [super init]) {
+
+ }
+ return self;
+}
+
+-(id) initWithData:(NSData *)data {
+ unsigned long dataLength = data.length;
+
+ if (data == nil || dataLength == 0) {
+ NSLog(@"Error: data is nil.");
+ return nil;
+ }
+
+ if (dataLength < RPC_HEADER_SIZE) {
+ NSLog(@"Error: insfficient data to form RPC header.");
+ return nil;
+ }
+
+ if (self = [self init]) {
+ @try {
+ // Setup our pointers for data access
+ UInt8 *bytePointer = (UInt8 *)data.bytes;
+ UInt32 *ui32Pointer = (UInt32 *)data.bytes;
+
+ // Extract the parts
+ UInt8 rpcType = (bytePointer[0] & 0xF0) >> 4;
+
+ self.rpcType = rpcType;
+
+ UInt32 functionID = ui32Pointer[0];
+ functionID = CFSwapInt32BigToHost(functionID) & 0x0FFFFFFF;
+ self.functionID = functionID;
+
+ UInt32 correlationID = ui32Pointer[1];
+ correlationID = CFSwapInt32BigToHost(correlationID);
+ self.correlationID = correlationID;
+
+ UInt32 jsonDataSize = ui32Pointer[2];
+ jsonDataSize = CFSwapInt32BigToHost(jsonDataSize);
+
+ NSData *jsonData = nil;
+ NSUInteger offsetOfJSONData = RPC_HEADER_SIZE;
+ if (jsonDataSize > 0 && jsonDataSize <= dataLength-RPC_HEADER_SIZE ) {
+ jsonData = [data subdataWithRange:NSMakeRange(offsetOfJSONData, jsonDataSize)];
+ }
+ self.jsonData = jsonData;
+
+ NSData *binaryData = nil;
+ NSUInteger offsetOfBinaryData = RPC_HEADER_SIZE + jsonDataSize;
+ NSInteger binaryDataSize = data.length - jsonDataSize - RPC_HEADER_SIZE;
+ if (binaryDataSize > 0) {
+ binaryData = [data subdataWithRange:NSMakeRange(offsetOfBinaryData, binaryDataSize)];
+ }
+ self.binaryData = binaryData;
+
+ } @catch (NSException *e) {
+ // Print exception information
+ NSLog( @"NSException caught in SDLRPCPayload::initWithData" );
+ NSLog( @"Name: %@", e.name);
+ NSLog( @"Reason: %@", e.reason );
+ NSLog( @"Data: %@", data.debugDescription );
+ return nil;
+
+ }
+ }
+
+ return self;
+}
+
+- (NSData *)data {
+ // Header is:
+ // RPC Type - first 4 bits
+ // RPC Function ID - next 28 bits
+ // Correlation ID - next 32 bits
+ // JSON size - next 32 bits
+ UInt8 headerBuffer[RPC_HEADER_SIZE];
+ *(UInt32 *)&headerBuffer[0] = CFSwapInt32HostToBig(self.functionID);
+ *(UInt32 *)&headerBuffer[4] = CFSwapInt32HostToBig(self.correlationID);
+ *(UInt32 *)&headerBuffer[8] = CFSwapInt32HostToBig((UInt32)self.jsonData.length);
+ UInt8 rpcType = (self.rpcType & 0x0F) << 4;
+ headerBuffer[0] &= 0x0F;
+ headerBuffer[0] |= rpcType;
+
+ // Serialize the header, the json data then the binary data
+ NSMutableData *dataOut = [NSMutableData dataWithCapacity:[self size]];
+ [dataOut appendBytes:&headerBuffer length:12];
+ [dataOut appendData:self.jsonData];
+ [dataOut appendData:self.binaryData];
+
+ return dataOut;
+}
+
+- (NSUInteger)size {
+ NSUInteger headerSize = RPC_HEADER_SIZE;
+ NSUInteger jsonDataSize = self.jsonData.length;
+ NSUInteger binaryDataSize = self.binaryData.length;
+
+ return (headerSize + jsonDataSize + binaryDataSize);
+}
+
+- (NSString *)description {
+ NSMutableString *description = [[NSMutableString alloc] init];
+ [description appendFormat:@" rpcType:%i, functionID:%i, correlationID:%i, json:%lu bytes, binary:%lu bytes", self.rpcType, (unsigned int)self.functionID, (unsigned int)self.correlationID, (unsigned long)self.jsonData.length, (unsigned long)self.binaryData.length];
+
+ return description;
+}
+
++ (id)rpcPayloadWithData:(NSData *)data {
+ return [[SDLRPCPayload alloc] initWithData:data];
+}
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCRequest.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCRequest.h
new file mode 100644
index 000000000..64e458fec
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCRequest.h
@@ -0,0 +1,12 @@
+// SDLRPCRequest.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+@interface SDLRPCRequest : SDLRPCMessage {}
+
+@property(strong) NSNumber* correlationID;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCRequest.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCRequest.m
new file mode 100644
index 000000000..7be72a152
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCRequest.m
@@ -0,0 +1,23 @@
+// SDLRPCRequest.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLRPCRequest.h"
+
+#import "SDLNames.h"
+
+@implementation SDLRPCRequest
+
+-(NSNumber*) correlationID {
+ return [function objectForKey:NAMES_correlationID];
+}
+
+-(void) setCorrelationID:(NSNumber *)corrID {
+ if (corrID != nil) {
+ [function setObject:corrID forKey:NAMES_correlationID];
+ } else {
+ [function removeObjectForKey:NAMES_correlationID];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCRequestFactory.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCRequestFactory.h
new file mode 100644
index 000000000..b1c6626da
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCRequestFactory.h
@@ -0,0 +1,188 @@
+// SDLRPCRequestFactory.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+
+#import "SDLAddCommand.h"
+#import "SDLAddSubMenu.h"
+#import "SDLAlert.h"
+#import "SDLAppHMIType.h"
+#import "SDLChangeRegistration.h"
+#import "SDLCreateInteractionChoiceSet.h"
+#import "SDLDeleteCommand.h"
+#import "SDLDeleteFile.h"
+#import "SDLDeleteInteractionChoiceSet.h"
+#import "SDLDeleteSubMenu.h"
+#import "SDLEndAudioPassThru.h"
+#import "SDLGetDTCs.h"
+#import "SDLGetVehicleData.h"
+#import "SDLListFiles.h"
+#import "SDLPerformAudioPassThru.h"
+#import "SDLPerformInteraction.h"
+#import "SDLPutFile.h"
+#import "SDLReadDID.h"
+#import "SDLRegisterAppInterface.h"
+#import "SDLResetGlobalProperties.h"
+#import "SDLScrollableMessage.h"
+#import "SDLSetAppIcon.h"
+#import "SDLSetDisplayLayout.h"
+#import "SDLSetGlobalProperties.h"
+#import "SDLSetMediaClockTimer.h"
+#import "SDLShow.h"
+#import "SDLSlider.h"
+#import "SDLSpeak.h"
+#import "SDLSubscribeButton.h"
+#import "SDLSubscribeVehicleData.h"
+#import "SDLUnregisterAppInterface.h"
+#import "SDLUnsubscribeButton.h"
+#import "SDLUnsubscribeVehicleData.h"
+
+@interface SDLRPCRequestFactory : NSObject {}
+
+//***** AddCommand *****
++(SDLAddCommand*) buildAddCommandWithID:(NSNumber*) cmdID menuName:(NSString*) menuName parentID:(NSNumber*) parentID position:(NSNumber*) position vrCommands:(NSArray*) vrCommands iconValue:(NSString*) iconValue iconType:(SDLImageType*) iconType correlationID:(NSNumber*) correlationID;
+
++(SDLAddCommand*) buildAddCommandWithID:(NSNumber*) cmdID menuName:(NSString*) menuName vrCommands:(NSArray*) vrCommands correlationID:(NSNumber*) correlationID;
+
++(SDLAddCommand*) buildAddCommandWithID:(NSNumber*) cmdID vrCommands:(NSArray*) vrCommands correlationID:(NSNumber*) correlationID;
+//*****
+
+
+//***** AddSubMenu *****
++(SDLAddSubMenu*) buildAddSubMenuWithID:(NSNumber*) menuID menuName:(NSString*) menuName position:(NSNumber*) position correlationID:(NSNumber*) correlationID;
+
++(SDLAddSubMenu*) buildAddSubMenuWithID:(NSNumber*) menuID menuName:(NSString*) menuName correlationID:(NSNumber*) correlationID;
+//*****
+
+
+//***** Alert *****
++(SDLAlert*) buildAlertWithTTS:(NSString*) ttsText alertText1:(NSString*) alertText1 alertText2:(NSString*) alertText2 alertText3:(NSString*) alertText3 playTone:(NSNumber*) playTone duration:(NSNumber*) duration correlationID:(NSNumber*) correlationID;
+
++(SDLAlert*) buildAlertWithTTS:(NSString*) ttsText alertText1:(NSString*) alertText1 alertText2:(NSString*) alertText2 playTone:(NSNumber*) playTone duration:(NSNumber*) duration correlationID:(NSNumber*) correlationID;
+
++(SDLAlert*) buildAlertWithTTS:(NSString*) ttsText playTone:(NSNumber*) playTone correlationID:(NSNumber*)
+correlationID;
+
+//***
++(SDLAlert*) buildAlertWithTTSChunks:(NSArray*) ttsChunks alertText1:(NSString*) alertText1 alertText2:(NSString*) alertText2 alertText3:(NSString*) alertText3 playTone:(NSNumber*) playTone duration:(NSNumber*) duration softButtons:(NSArray*) softButtons correlationID:(NSNumber*) correlationID;
+
++(SDLAlert*) buildAlertWithTTSChunks:(NSArray*) ttsChunks playTone:(NSNumber*) playTone correlationID:(NSNumber*) correlationID;
+
+//***
++(SDLAlert*) buildAlertWithAlertText1:(NSString*) alertText1 alertText2:(NSString*) alertText2 alertText3:(NSString*) alertText3 duration:(NSNumber*) duration softButtons:(NSArray*) softButtons correlationID:(NSNumber*) correlationID;
+
++(SDLAlert*) buildAlertWithAlertText1:(NSString*) alertText1 alertText2:(NSString*) alertText2 alertText3:(NSString*) alertText3 duration:(NSNumber*) duration correlationID:(NSNumber*) correlationID;
+
++(SDLAlert*) buildAlertWithAlertText1:(NSString*) alertText1 alertText2:(NSString*) alertText2 duration:(NSNumber*) duration correlationID:(NSNumber*) correlationID;
+//*****
+
+
++(SDLChangeRegistration*) buildChangeRegistrationWithLanguage:(SDLLanguage*) language hmiDisplayLanguage:(SDLLanguage*) hmiDisplayLanguage correlationID:(NSNumber*) correlationID;
+
++(SDLCreateInteractionChoiceSet*) buildCreateInteractionChoiceSetWithID:(NSNumber*)interactionChoiceSetID choiceSet:(NSArray*) choices correlationID:(NSNumber*) correlationID;
+
++(SDLDeleteCommand*) buildDeleteCommandWithID:(NSNumber*) cmdID correlationID:(NSNumber*) correlationID;
+
++(SDLDeleteFile*) buildDeleteFileWithName:(NSString*) syncFileName correlationID:(NSNumber*) correlationID;
+
++(SDLListFiles*) buildListFilesWithCorrelationID:(NSNumber*) correlationID;
+
++(SDLDeleteInteractionChoiceSet*) buildDeleteInteractionChoiceSetWithID:(NSNumber*)interactionChoiceSetID correlationID:(NSNumber*) correlationID;
+
++(SDLDeleteSubMenu*) buildDeleteSubMenuWithID:(NSNumber*) menuID correlationID:(NSNumber*) correlationID;
+
++(SDLEndAudioPassThru*) buildEndAudioPassThruWithCorrelationID:(NSNumber*) correlationID;
+
++(SDLGetDTCs*) buildGetDTCsWithECUName:(NSNumber*) ecuName correlationID:(NSNumber*) correlationID;
+
++(SDLGetVehicleData*) buildGetVehicleDataWithGPS:(NSNumber*) gps speed:(NSNumber*) speed rpm:(NSNumber*) rpm fuelLevel:(NSNumber*) fuelLevel fuelLevelState:(NSNumber*) fuelLevelState instantFuelConsumption:(NSNumber*) instantFuelConsumption externalTemperature:(NSNumber*) externalTemperature vin:(NSNumber*) vin prndl:(NSNumber*) prndl tirePressure:(NSNumber*) tirePressure odometer:(NSNumber*) odometer beltStatus:(NSNumber*) beltStatus bodyInformation:(NSNumber*) bodyInformation deviceStatus:(NSNumber*) deviceStatus driverBraking:(NSNumber*) driverBraking wiperStatus:(NSNumber*) wiperStatus headLampStatus:(NSNumber*) headLampStatus engineTorque:(NSNumber*) engineTorque accPedalPosition:(NSNumber*) accPedalPosition steeringWheelAngle:(NSNumber*) steeringWheelAngle correlationID:(NSNumber*) correlationID;
+
++(SDLPerformAudioPassThru*) buildPerformAudioPassThruWithInitialPrompt:(NSString*) initialPrompt audioPassThruDisplayText1:(NSString*) audioPassThruDisplayText1 audioPassThruDisplayText2:(NSString*) audioPassThruDisplayText2 samplingRate:(SDLSamplingRate*) samplingRate maxDuration:(NSNumber*) maxDuration bitsPerSample:(SDLBitsPerSample*) bitsPerSample audioType:(SDLAudioType*) audioType muteAudio:(NSNumber*) muteAudio correlationID:(NSNumber*) correlationID;
+
+
+//***** PerformInteraction *****
++(SDLPerformInteraction*) buildPerformInteractionWithInitialChunks:(NSArray*)initialChunks initialText:(NSString*)initialText interactionChoiceSetIDList:(NSArray*) interactionChoiceSetIDList helpChunks:(NSArray*)helpChunks timeoutChunks:(NSArray*)timeoutChunks interactionMode:(SDLInteractionMode*) interactionMode timeout:(NSNumber*)timeout vrHelp:(NSArray*) vrHelp correlationID:(NSNumber*) correlationID;
+
+//***
++(SDLPerformInteraction*) buildPerformInteractionWithInitialPrompt:(NSString*)initialPrompt initialText:(NSString*)initialText interactionChoiceSetIDList:(NSArray*) interactionChoiceSetIDList helpPrompt:(NSString*)helpPrompt timeoutPrompt:(NSString*)timeoutPrompt interactionMode:(SDLInteractionMode*) interactionMode timeout:(NSNumber*)timeout vrHelp:(NSArray*) vrHelp correlationID:(NSNumber*) correlationID;
+
++(SDLPerformInteraction*) buildPerformInteractionWithInitialPrompt:(NSString*)initialPrompt initialText:(NSString*)initialText interactionChoiceSetID:(NSNumber*) interactionChoiceSetID vrHelp:(NSArray*) vrHelp correlationID:(NSNumber*) correlationID;
+
++(SDLPerformInteraction*) buildPerformInteractionWithInitialPrompt:(NSString*)initialPrompt initialText:(NSString*)initialText interactionChoiceSetIDList:(NSArray*) interactionChoiceSetIDList helpPrompt:(NSString*)helpPrompt timeoutPrompt:(NSString*)timeoutPrompt interactionMode:(SDLInteractionMode*) interactionMode timeout:(NSNumber*)timeout correlationID:(NSNumber*) correlationID;
+
++(SDLPerformInteraction*) buildPerformInteractionWithInitialPrompt:(NSString*)initialPrompt initialText:(NSString*)initialText interactionChoiceSetID:(NSNumber*) interactionChoiceSetID correlationID:(NSNumber*) correlationID;
+//*****
+
+
++(SDLPutFile*) buildPutFileWithFileName:(NSString*) syncFileName fileType:(SDLFileType*) fileType persisistentFile:(NSNumber*) persistentFile correlationID:(NSNumber*) correlationID;
+
++(SDLReadDID*) buildReadDIDWithECUName:(NSNumber*) ecuName didLocation:(NSArray*) didLocation correlationID:(NSNumber*) correlationID;
+
+//***** RegisterAppInterface *****
++(SDLRegisterAppInterface*) buildRegisterAppInterfaceWithAppName:(NSString*) appName ttsName:(NSMutableArray*) ttsName vrSynonyms:(NSMutableArray*) vrSynonyms isMediaApp:(NSNumber*) isMediaApp languageDesired:(SDLLanguage*) languageDesired hmiDisplayLanguageDesired:(SDLLanguage*) hmiDisplayLanguageDesired appID:(NSString*) appID;
+
++(SDLRegisterAppInterface*) buildRegisterAppInterfaceWithAppName:(NSString*) appName isMediaApp:(NSNumber*) isMediaApp languageDesired:(SDLLanguage*) languageDesired appID:(NSString*) appID;
+
++(SDLRegisterAppInterface*) buildRegisterAppInterfaceWithAppName:(NSString*) appName languageDesired:(SDLLanguage*) laguageDesired appID:(NSString*) appID;
+//*****
+
+
++(SDLResetGlobalProperties*) buildResetGlobalPropertiesWithProperties:(NSArray*) properties correlationID:(NSNumber*) correlationID;
+
++(SDLScrollableMessage*) buildScrollableMessage:(NSString*) scrollableMessageBody timeout:(NSNumber*) timeout softButtons:(NSArray*) softButtons correlationID:(NSNumber*) correlationID;
+
++(SDLSetAppIcon*) buildSetAppIconWithFileName:(NSString*) syncFileName correlationID:(NSNumber*) correlationID;
+
++(SDLSetDisplayLayout*) buildSetDisplayLayout:(NSString*) displayLayout correlationID:(NSNumber*) correlationID;
+
+
+//***** SetGlobalProperties *****
++(SDLSetGlobalProperties*) buildSetGlobalPropertiesWithHelpText:(NSString*) helpText timeoutText:(NSString*) timeoutText vrHelpTitle:(NSString*) vrHelpTitle vrHelp:(NSArray*) vrHelp correlationID:(NSNumber*) correlationID;
+
++(SDLSetGlobalProperties*) buildSetGlobalPropertiesWithHelpText:(NSString*) helpText timeoutText:(NSString*) timeoutText correlationID:(NSNumber*) correlationID;
+//*****
+
+
+//***** SetMediaClockTimer *****
++(SDLSetMediaClockTimer*) buildSetMediaClockTimerWithHours:(NSNumber*) hours minutes:(NSNumber*) minutes seconds:(NSNumber*) seconds updateMode:(SDLUpdateMode*) updateMode correlationID:(NSNumber*) correlationID;
+
++(SDLSetMediaClockTimer*) buildSetMediaClockTimerWithUpdateMode:(SDLUpdateMode*) updateMode correlationID:(NSNumber*) correlationID;
+//*****
+
+
+//***** Show *****
++(SDLShow*) buildShowWithMainField1:(NSString*) mainField1 mainField2: (NSString*) mainField2 mainField3: (NSString*) mainField3 mainField4: (NSString*) mainField4 statusBar:(NSString*) statusBar mediaClock:(NSString*) mediaClock mediaTrack:(NSString*) mediaTrack alignment:(SDLTextAlignment*) textAlignment graphic:(SDLImage*) graphic softButtons:(NSArray*) softButtons customPresets:(NSArray*) customPresets correlationID:(NSNumber*) correlationID;
+
++(SDLShow*) buildShowWithMainField1:(NSString*) mainField1 mainField2: (NSString*) mainField2 statusBar:(NSString*) statusBar mediaClock:(NSString*) mediaClock mediaTrack:(NSString*) mediaTrack alignment:(SDLTextAlignment*) textAlignment correlationID:(NSNumber*) correlationID;
+
++(SDLShow*) buildShowWithMainField1:(NSString*) mainField1 mainField2: (NSString*) mainField2 alignment:(SDLTextAlignment*) alignment correlationID:(NSNumber*) correlationID;
+//*****
+
+
+//***** Slider *****
++(SDLSlider*) buildSliderDynamicFooterWithNumTicks:(NSNumber*) numTicks position:(NSNumber*) position sliderHeader:(NSString*) sliderHeader sliderFooter:(NSArray*) sliderFooter timeout:(NSNumber*) timeout correlationID:(NSNumber*) correlationID;
+
++(SDLSlider*) buildSliderStaticFooterWithNumTicks:(NSNumber*) numTicks position:(NSNumber*) position sliderHeader:(NSString*) sliderHeader sliderFooter:(NSString*) sliderFooter timeout:(NSNumber*) timeout correlationID:(NSNumber*) correlationID;
+//*****
+
+
+//***** Speak *****
++(SDLSpeak*) buildSpeakWithTTSChunks:(NSArray*) ttsChunks correlationID:(NSNumber*) correlationID;
+
+//***
++(SDLSpeak*) buildSpeakWithTTS:(NSString*) ttsText correlationID:(NSNumber*) correlationID;
+//*****
+
+
++(SDLSubscribeButton*) buildSubscribeButtonWithName:(SDLButtonName*) buttonName correlationID:(NSNumber*) correlationID;
+
++(SDLSubscribeVehicleData*) buildSubscribeVehicleDataWithGPS:(NSNumber*) gps speed:(NSNumber*) speed rpm:(NSNumber*) rpm fuelLevel:(NSNumber*) fuelLevel fuelLevelState:(NSNumber*) fuelLevelState instantFuelConsumption:(NSNumber*) instantFuelConsumption externalTemperature:(NSNumber*) externalTemperature prndl:(NSNumber*) prndl tirePressure:(NSNumber*) tirePressure odometer:(NSNumber*) odometer beltStatus:(NSNumber*) beltStatus bodyInformation:(NSNumber*) bodyInformation deviceStatus:(NSNumber*) deviceStatus driverBraking:(NSNumber*) driverBraking wiperStatus:(NSNumber*) wiperStatus headLampStatus:(NSNumber*) headLampStatus engineTorque:(NSNumber*) engineTorque accPedalPosition:(NSNumber*) accPedalPosition steeringWheelAngle:(NSNumber*) steeringWheelAngle correlationID:(NSNumber*) correlationID;
+
++(SDLUnregisterAppInterface*) buildUnregisterAppInterfaceWithCorrelationID:(NSNumber*) correlationID;
+
++(SDLUnsubscribeButton*) buildUnsubscribeButtonWithName:(SDLButtonName*) buttonName correlationID:(NSNumber*) correlationID;
+
++(SDLUnsubscribeVehicleData*) buildUnsubscribeVehicleDataWithGPS:(NSNumber*) gps speed:(NSNumber*) speed rpm:(NSNumber*) rpm fuelLevel:(NSNumber*) fuelLevel fuelLevelState:(NSNumber*) fuelLevelState instantFuelConsumption:(NSNumber*) instantFuelConsumption externalTemperature:(NSNumber*) externalTemperature prndl:(NSNumber*) prndl tirePressure:(NSNumber*) tirePressure odometer:(NSNumber*) odometer beltStatus:(NSNumber*) beltStatus bodyInformation:(NSNumber*) bodyInformation deviceStatus:(NSNumber*) deviceStatus driverBraking:(NSNumber*) driverBraking wiperStatus:(NSNumber*) wiperStatus headLampStatus:(NSNumber*) headLampStatus engineTorque:(NSNumber*) engineTorque accPedalPosition:(NSNumber*) accPedalPosition steeringWheelAngle:(NSNumber*) steeringWheelAngle correlationID:(NSNumber*) correlationID;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCRequestFactory.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCRequestFactory.m
new file mode 100644
index 000000000..ed50798d4
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCRequestFactory.m
@@ -0,0 +1,623 @@
+// SDLRPCRequestFactory.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLRPCRequestFactory.h"
+
+#import "SDLMenuParams.h"
+#import "SDLTTSChunkFactory.h"
+
+@implementation SDLRPCRequestFactory
+
+//***** AddCommand *****
++(SDLAddCommand*) buildAddCommandWithID:(NSNumber*) cmdID menuName:(NSString*) menuName parentID:(NSNumber*) parentID position:(NSNumber*) position vrCommands:(NSArray*) vrCommands iconValue:(NSString*) iconValue iconType:(SDLImageType*) iconType correlationID:(NSNumber*) correlationID {
+
+ SDLAddCommand* msg = [[SDLAddCommand alloc] init];
+ msg.correlationID = correlationID;
+
+ msg.cmdID = cmdID;
+
+ if (menuName != nil || parentID != nil || position != nil) {
+ SDLMenuParams* menuParams = [[SDLMenuParams alloc] init];
+ menuParams.menuName = menuName;
+ menuParams.parentID = parentID;
+ menuParams.position = position;
+ msg.menuParams = menuParams;
+ }
+ msg.vrCommands = [vrCommands mutableCopy];
+
+ if (iconValue != nil || iconType != nil) {
+ SDLImage* icon = [[SDLImage alloc] init];
+ icon.value = iconValue;
+ icon.imageType = iconType;
+ msg.cmdIcon = icon;
+ }
+
+ return msg;
+}
+
++(SDLAddCommand*) buildAddCommandWithID:(NSNumber*) cmdID menuName:(NSString*) menuName vrCommands:(NSArray*) vrCommands correlationID:(NSNumber*) correlationID {
+
+ return [SDLRPCRequestFactory buildAddCommandWithID:cmdID menuName:menuName parentID:nil position:nil vrCommands:vrCommands iconValue:nil iconType:nil correlationID:correlationID];
+}
+
++(SDLAddCommand*) buildAddCommandWithID:(NSNumber*) cmdID vrCommands:(NSArray*) vrCommands correlationID:(NSNumber*) correlationID {
+
+ return [SDLRPCRequestFactory buildAddCommandWithID:cmdID menuName:nil vrCommands:vrCommands correlationID:correlationID];
+}
+//*****
+
+
+//***** AddSubMenu *****
++(SDLAddSubMenu*) buildAddSubMenuWithID:(NSNumber*) menuID menuName:(NSString*) menuName position:(NSNumber*) position correlationID:(NSNumber*) correlationID {
+
+ SDLAddSubMenu* msg = [[SDLAddSubMenu alloc] init];
+ msg.correlationID = correlationID;
+ msg.menuID = menuID;
+ msg.menuName = menuName;
+ msg.position = position;
+
+ return msg;
+}
+
++(SDLAddSubMenu*) buildAddSubMenuWithID:(NSNumber*) menuID menuName:(NSString*) menuName correlationID:(NSNumber*) correlationID {
+ return [SDLRPCRequestFactory buildAddSubMenuWithID:menuID menuName:menuName position:nil correlationID:correlationID];
+}
+//*****
+
+
+//***** Alert *****
++(SDLAlert*) buildAlertWithTTS:(NSString*) ttsText alertText1:(NSString*) alertText1 alertText2:(NSString*) alertText2 alertText3:(NSString*) alertText3 playTone:(NSNumber*) playTone duration:(NSNumber*) duration correlationID:(NSNumber*) correlationID {
+
+ SDLTTSChunk* simpleChunk = [[SDLTTSChunk alloc] init];
+ simpleChunk.text = ttsText;
+ simpleChunk.type = SDLSpeechCapabilities.TEXT;
+ NSArray* ttsChunks = [NSArray arrayWithObject:simpleChunk];
+
+ return [SDLRPCRequestFactory buildAlertWithTTSChunks:ttsChunks alertText1:alertText1 alertText2:alertText2 alertText3:alertText3 playTone:playTone duration:duration softButtons:nil correlationID:correlationID];
+}
+
++(SDLAlert*) buildAlertWithTTS:(NSString*) ttsText alertText1:(NSString*) alertText1 alertText2:(NSString*) alertText2 playTone:(NSNumber*) playTone duration:(NSNumber*) duration correlationID:(NSNumber*) correlationID {
+
+ return [SDLRPCRequestFactory buildAlertWithTTS:ttsText alertText1:alertText1 alertText2:alertText2 alertText3:nil playTone:playTone duration:duration correlationID:correlationID];
+}
+
++(SDLAlert*) buildAlertWithTTS:(NSString*) ttsText playTone:(NSNumber*) playTone correlationID:(NSNumber*)
+correlationID{
+
+ return [SDLRPCRequestFactory buildAlertWithTTS:ttsText alertText1:nil alertText2:nil alertText3:nil playTone:playTone duration:nil correlationID:correlationID];
+}
+
+//***
++(SDLAlert*) buildAlertWithTTSChunks:(NSArray*) ttsChunks alertText1:(NSString*) alertText1 alertText2:(NSString*) alertText2 alertText3:(NSString*) alertText3 playTone:(NSNumber*) playTone duration:(NSNumber*) duration softButtons:(NSArray*) softButtons correlationID:(NSNumber*) correlationID {
+
+ SDLAlert* msg = [[SDLAlert alloc] init];
+ msg.correlationID = correlationID;
+ msg.alertText1 = alertText1;
+ msg.alertText2 = alertText2;
+ msg.alertText3 = alertText3;
+ msg.ttsChunks = [ttsChunks mutableCopy];
+ msg.playTone = playTone;
+ msg.duration = duration;
+ msg.softButtons = [softButtons mutableCopy];
+ return msg;
+}
+
++(SDLAlert*) buildAlertWithTTSChunks:(NSArray*) ttsChunks playTone:(NSNumber*) playTone correlationID:(NSNumber*) correlationID {
+ return [SDLRPCRequestFactory buildAlertWithTTSChunks:ttsChunks alertText1:nil alertText2:nil alertText3:nil playTone:playTone duration:nil softButtons:nil correlationID:correlationID];
+}
+
+//***
++(SDLAlert*) buildAlertWithAlertText1:(NSString*) alertText1 alertText2:(NSString*) alertText2 alertText3:(NSString*) alertText3 duration:(NSNumber*) duration softButtons:(NSMutableArray*) softButtons correlationID:(NSNumber*) correlationID {
+ return [SDLRPCRequestFactory buildAlertWithTTSChunks:nil alertText1:alertText1 alertText2:alertText2 alertText3:alertText3 playTone:nil duration:duration softButtons:softButtons correlationID:correlationID];
+}
+
++(SDLAlert*) buildAlertWithAlertText1:(NSString*) alertText1 alertText2:(NSString*) alertText2 alertText3:(NSString*) alertText3 duration:(NSNumber*) duration correlationID:(NSNumber*) correlationID {
+ return [SDLRPCRequestFactory buildAlertWithTTSChunks:nil alertText1: alertText1 alertText2:alertText2 alertText3:alertText3 playTone:nil duration:duration softButtons:nil correlationID:correlationID];
+}
+
++(SDLAlert*) buildAlertWithAlertText1:(NSString*) alertText1 alertText2:(NSString*) alertText2 duration:(NSNumber*) duration correlationID:(NSNumber*) correlationID {
+ return [SDLRPCRequestFactory buildAlertWithTTSChunks:nil alertText1: alertText1 alertText2:alertText2 alertText3:nil playTone:nil duration:duration softButtons:nil correlationID:correlationID];
+}
+//*****
+
+
++(SDLChangeRegistration*) buildChangeRegistrationWithLanguage:(SDLLanguage*) language hmiDisplayLanguage:(SDLLanguage*) hmiDisplayLanguage correlationID:(NSNumber*) correlationID {
+
+ SDLChangeRegistration* msg = [[SDLChangeRegistration alloc] init];
+ msg.language = language;
+ msg.hmiDisplayLanguage = hmiDisplayLanguage;
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+
++(SDLCreateInteractionChoiceSet*) buildCreateInteractionChoiceSetWithID:(NSNumber*)interactionChoiceSetID choiceSet:(NSArray*) choices correlationID:(NSNumber*) correlationID {
+
+ SDLCreateInteractionChoiceSet *msg = [[SDLCreateInteractionChoiceSet alloc] init];
+ msg.interactionChoiceSetID = interactionChoiceSetID;
+ msg.choiceSet = [choices mutableCopy];
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+
++(SDLDeleteCommand*) buildDeleteCommandWithID:(NSNumber*) cmdID correlationID:(NSNumber*) correlationID {
+
+ SDLDeleteCommand *msg = [[SDLDeleteCommand alloc] init];
+ msg.cmdID = cmdID;
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+
++(SDLDeleteFile*) buildDeleteFileWithName:(NSString*) syncFileName correlationID:(NSNumber*) correlationID {
+
+ SDLDeleteFile* msg = [[SDLDeleteFile alloc] init];
+ msg.syncFileName = syncFileName;
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+
++(SDLListFiles*) buildListFilesWithCorrelationID:(NSNumber*) correlationID {
+
+ SDLListFiles* msg = [[SDLListFiles alloc] init];
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+
++(SDLDeleteInteractionChoiceSet*) buildDeleteInteractionChoiceSetWithID:(NSNumber*)interactionChoiceSetID correlationID:(NSNumber*) correlationID {
+
+ SDLDeleteInteractionChoiceSet *msg = [[SDLDeleteInteractionChoiceSet alloc] init];
+ msg.interactionChoiceSetID = interactionChoiceSetID;
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+
++(SDLDeleteSubMenu*) buildDeleteSubMenuWithID:(NSNumber*) menuID correlationID:(NSNumber*) correlationID {
+
+ SDLDeleteSubMenu *msg = [[SDLDeleteSubMenu alloc] init];
+ msg.menuID = menuID;
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+
++(SDLEndAudioPassThru*) buildEndAudioPassThruWithCorrelationID:(NSNumber*) correlationID {
+
+ SDLEndAudioPassThru* msg = [[SDLEndAudioPassThru alloc] init];
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+
++(SDLGetDTCs*) buildGetDTCsWithECUName:(NSNumber*) ecuName correlationID:(NSNumber*) correlationID {
+
+ SDLGetDTCs* msg = [[SDLGetDTCs alloc] init];
+ msg.ecuName = ecuName;
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+
++(SDLGetVehicleData*) buildGetVehicleDataWithGPS:(NSNumber*) gps speed:(NSNumber*) speed rpm:(NSNumber*) rpm fuelLevel:(NSNumber*) fuelLevel fuelLevelState:(NSNumber*) fuelLevelState instantFuelConsumption:(NSNumber*) instantFuelConsumption externalTemperature:(NSNumber*) externalTemperature vin:(NSNumber*) vin prndl:(NSNumber*) prndl tirePressure:(NSNumber*) tirePressure odometer:(NSNumber*) odometer beltStatus:(NSNumber*) beltStatus bodyInformation:(NSNumber*) bodyInformation deviceStatus:(NSNumber*) deviceStatus driverBraking:(NSNumber*) driverBraking wiperStatus:(NSNumber*) wiperStatus headLampStatus:(NSNumber*) headLampStatus engineTorque:(NSNumber*) engineTorque accPedalPosition:(NSNumber*) accPedalPosition steeringWheelAngle:(NSNumber*) steeringWheelAngle correlationID:(NSNumber*) correlationID {
+
+ SDLGetVehicleData* msg = [[SDLGetVehicleData alloc] init];
+ msg.gps = gps;
+ msg.speed = speed;
+ msg.rpm = rpm;
+ msg.fuelLevel = fuelLevel;
+ msg.fuelLevel_State = fuelLevelState;
+ msg.instantFuelConsumption = instantFuelConsumption;
+ msg.externalTemperature = externalTemperature;
+ msg.vin = vin;
+ msg.prndl = prndl;
+ msg.tirePressure = tirePressure;
+ msg.odometer = odometer;
+ msg.beltStatus = beltStatus;
+ msg.bodyInformation = bodyInformation;
+ msg.deviceStatus = deviceStatus;
+ msg.driverBraking = driverBraking;
+ msg.wiperStatus = wiperStatus;
+ msg.headLampStatus = headLampStatus;
+ msg.engineTorque = engineTorque;
+ msg.accPedalPosition = accPedalPosition;
+ msg.steeringWheelAngle = steeringWheelAngle;
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+
++(SDLPerformAudioPassThru*) buildPerformAudioPassThruWithInitialPrompt:(NSString*) initialPrompt audioPassThruDisplayText1:(NSString*) audioPassThruDisplayText1 audioPassThruDisplayText2:(NSString*) audioPassThruDisplayText2 samplingRate:(SDLSamplingRate*) samplingRate maxDuration:(NSNumber*) maxDuration bitsPerSample:(SDLBitsPerSample*) bitsPerSample audioType:(SDLAudioType*) audioType muteAudio:(NSNumber*) muteAudio correlationID:(NSNumber*) correlationID {
+
+ NSArray* initialChunks = [SDLTTSChunkFactory buildTTSChunksFromSimple:initialPrompt];
+
+ SDLPerformAudioPassThru* msg = [[SDLPerformAudioPassThru alloc] init];
+ msg.initialPrompt = [initialChunks mutableCopy];
+ msg.audioPassThruDisplayText1 = audioPassThruDisplayText1;
+ msg.audioPassThruDisplayText2 = audioPassThruDisplayText2;
+ msg.samplingRate = samplingRate;
+ msg.maxDuration = maxDuration;
+ msg.bitsPerSample = bitsPerSample;
+ msg.audioType = audioType;
+ msg.muteAudio = muteAudio;
+
+ return msg;
+}
+
+
+//***** PerformInteraction *****
++(SDLPerformInteraction*) buildPerformInteractionWithInitialChunks:(NSArray*)initialChunks initialText:(NSString*)initialText interactionChoiceSetIDList:(NSArray*) interactionChoiceSetIDList helpChunks:(NSArray*)helpChunks timeoutChunks:(NSArray*)timeoutChunks interactionMode:(SDLInteractionMode*) interactionMode timeout:(NSNumber*)timeout vrHelp:(NSArray*) vrHelp correlationID:(NSNumber*) correlationID {
+
+ SDLPerformInteraction *msg = [[SDLPerformInteraction alloc] init];
+ msg.initialPrompt = [initialChunks mutableCopy];
+ msg.initialText = initialText;
+ msg.interactionChoiceSetIDList = [interactionChoiceSetIDList mutableCopy];
+ msg.helpPrompt = [helpChunks mutableCopy];
+ msg.timeoutPrompt = [timeoutChunks mutableCopy];
+ msg.interactionMode = interactionMode;
+ msg.timeout = timeout;
+ msg.vrHelp = [vrHelp mutableCopy];
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+
+//***
++(SDLPerformInteraction*) buildPerformInteractionWithInitialPrompt:(NSString*)initialPrompt initialText:(NSString*)initialText interactionChoiceSetIDList:(NSArray*) interactionChoiceSetIDList helpPrompt:(NSString*)helpPrompt timeoutPrompt:(NSString*)timeoutPrompt interactionMode:(SDLInteractionMode*) interactionMode timeout:(NSNumber*)timeout vrHelp:(NSArray*) vrHelp correlationID:(NSNumber*) correlationID {
+
+ NSArray* initialChunks = [SDLTTSChunkFactory buildTTSChunksFromSimple:initialPrompt];
+ NSArray* helpChunks = [SDLTTSChunkFactory buildTTSChunksFromSimple:helpPrompt];
+ NSArray* timeoutChunks = [SDLTTSChunkFactory buildTTSChunksFromSimple:timeoutPrompt];
+
+ return [SDLRPCRequestFactory buildPerformInteractionWithInitialChunks:initialChunks initialText:initialText interactionChoiceSetIDList:interactionChoiceSetIDList helpChunks:helpChunks timeoutChunks:timeoutChunks interactionMode:interactionMode timeout:timeout vrHelp:vrHelp correlationID:correlationID];
+}
+
++(SDLPerformInteraction*) buildPerformInteractionWithInitialPrompt:(NSString*)initialPrompt initialText:(NSString*)initialText interactionChoiceSetID:(NSNumber*) interactionChoiceSetID vrHelp:(NSArray*) vrHelp correlationID:(NSNumber*) correlationID {
+
+ NSArray *interactionChoiceSetIDList = [NSArray arrayWithObject:interactionChoiceSetID];
+ NSArray* initialChunks = [SDLTTSChunkFactory buildTTSChunksFromSimple:initialPrompt];
+
+ return [SDLRPCRequestFactory buildPerformInteractionWithInitialChunks:initialChunks initialText:initialText interactionChoiceSetIDList:interactionChoiceSetIDList helpChunks:nil timeoutChunks:nil interactionMode:SDLInteractionMode.BOTH timeout:nil vrHelp:vrHelp correlationID:correlationID];
+}
+
++(SDLPerformInteraction*) buildPerformInteractionWithInitialPrompt:(NSString*)initialPrompt initialText:(NSString*)initialText interactionChoiceSetIDList:(NSArray*) interactionChoiceSetIDList helpPrompt:(NSString*)helpPrompt timeoutPrompt:(NSString*)timeoutPrompt interactionMode:(SDLInteractionMode*) interactionMode timeout:(NSNumber*)timeout correlationID:(NSNumber*) correlationID {
+
+ return [SDLRPCRequestFactory buildPerformInteractionWithInitialPrompt:initialPrompt initialText:initialText interactionChoiceSetIDList:interactionChoiceSetIDList helpPrompt:helpPrompt timeoutPrompt:timeoutPrompt interactionMode:interactionMode timeout:timeout vrHelp:nil correlationID:(NSNumber*) correlationID];
+}
+
++(SDLPerformInteraction*) buildPerformInteractionWithInitialPrompt:(NSString*)initialPrompt initialText:(NSString*)initialText interactionChoiceSetID:(NSNumber*) interactionChoiceSetID correlationID:(NSNumber*) correlationID {
+
+ return [SDLRPCRequestFactory buildPerformInteractionWithInitialPrompt:initialPrompt initialText:initialText interactionChoiceSetID:interactionChoiceSetID vrHelp:nil correlationID:correlationID];
+}
+//*****
+
+
++(SDLPutFile*) buildPutFileWithFileName:(NSString*) syncFileName fileType:(SDLFileType*) fileType persisistentFile:(NSNumber*) persistentFile correlationID:(NSNumber*) correlationID {
+
+ //TODO
+ // +(FMPutFile*) buildPutFile:(NSString*) syncFileName fileType:(SDLFileType*) fileType persisistentFile:(NSNumber*) persistentFile fileData:(NSData*) fileData correlationID:(NSNumber*) correlationID {
+
+
+ SDLPutFile* msg = [[SDLPutFile alloc] init];
+ msg.syncFileName = syncFileName;
+
+ msg.fileType = [fileType mutableCopy];
+ msg.persistentFile = persistentFile;
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+
++(SDLReadDID*) buildReadDIDWithECUName:(NSNumber*) ecuName didLocation:(NSArray*) didLocation correlationID:(NSNumber*) correlationID {
+
+ SDLReadDID* msg = [[SDLReadDID alloc] init];
+ msg.ecuName = ecuName;
+ msg.didLocation = [didLocation mutableCopy];
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+
+//***** RegisterAppInterface *****
++(SDLRegisterAppInterface*) buildRegisterAppInterfaceWithAppName:(NSString*) appName ttsName:(NSMutableArray*) ttsName vrSynonyms:(NSMutableArray*) vrSynonyms isMediaApp:(NSNumber*) isMediaApp languageDesired:(SDLLanguage*) languageDesired hmiDisplayLanguageDesired:(SDLLanguage*) hmiDisplayLanguageDesired appID:(NSString*) appID {
+
+ SDLRegisterAppInterface* msg = [[SDLRegisterAppInterface alloc] init];
+ SDLSyncMsgVersion* version = [[SDLSyncMsgVersion alloc] init];
+ version.majorVersion = [NSNumber numberWithInt:1];
+ version.minorVersion = [NSNumber numberWithInt:0];
+ msg.syncMsgVersion = version;
+ msg.appName = appName;
+ msg.ttsName = ttsName;
+ msg.ngnMediaScreenAppName = appName;
+ msg.vrSynonyms = vrSynonyms;
+ msg.isMediaApplication = isMediaApp;
+ msg.languageDesired = languageDesired;
+ msg.hmiDisplayLanguageDesired = hmiDisplayLanguageDesired;
+ msg.appID = appID;
+
+ msg.correlationID = [NSNumber numberWithInt:1];
+
+ return msg;
+}
+
++(SDLRegisterAppInterface*) buildRegisterAppInterfaceWithAppName:(NSString*) appName isMediaApp:(NSNumber*) isMediaApp languageDesired:(SDLLanguage*) languageDesired appID:(NSString*) appID {
+
+ NSMutableArray* syns = [NSMutableArray arrayWithObject:appName];
+
+ return [SDLRPCRequestFactory buildRegisterAppInterfaceWithAppName:appName ttsName:nil vrSynonyms:syns isMediaApp:isMediaApp languageDesired:languageDesired hmiDisplayLanguageDesired:languageDesired appID:appID];
+}
+
++(SDLRegisterAppInterface*) buildRegisterAppInterfaceWithAppName:(NSString*) appName languageDesired:(SDLLanguage*) languageDesired appID:(NSString*) appID{
+
+ return [SDLRPCRequestFactory buildRegisterAppInterfaceWithAppName:appName isMediaApp:[NSNumber numberWithBool:NO] languageDesired:languageDesired appID: appID];
+}
+//*****
+
+
++(SDLResetGlobalProperties*) buildResetGlobalPropertiesWithProperties:(NSArray*) properties correlationID:(NSNumber*) correlationID {
+
+ SDLResetGlobalProperties* msg = [[SDLResetGlobalProperties alloc] init];
+ msg.properties = [properties mutableCopy];
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+
++(SDLScrollableMessage*) buildScrollableMessage:(NSString*) scrollableMessageBody timeout:(NSNumber*) timeout softButtons:(NSArray*) softButtons correlationID:(NSNumber*) correlationID {
+
+ SDLScrollableMessage* msg = [[SDLScrollableMessage alloc] init];
+ msg.scrollableMessageBody = scrollableMessageBody;
+ msg.timeout = timeout;
+ msg.softButtons = [softButtons mutableCopy];
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+
++(SDLSetAppIcon*) buildSetAppIconWithFileName:(NSString*) syncFileName correlationID:(NSNumber*) correlationID {
+
+ SDLSetAppIcon* msg = [[SDLSetAppIcon alloc] init];
+ msg.syncFileName = syncFileName;
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+
++(SDLSetDisplayLayout*) buildSetDisplayLayout:(NSString*) displayLayout correlationID:(NSNumber*) correlationID {
+
+ SDLSetDisplayLayout* msg = [[SDLSetDisplayLayout alloc] init];
+ msg.displayLayout = displayLayout;
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+
+
+//***** SetGlobalProperties *****
++(SDLSetGlobalProperties*) buildSetGlobalPropertiesWithHelpText:(NSString*) helpText timeoutText:(NSString*) timeoutText vrHelpTitle:(NSString*) vrHelpTitle vrHelp:(NSArray*) vrHelp correlationID:(NSNumber*) correlationID {
+
+ SDLSetGlobalProperties* msg = [[SDLSetGlobalProperties alloc] init];
+ msg.helpPrompt = [SDLTTSChunkFactory buildTTSChunksFromSimple:helpText];
+ msg.timeoutPrompt = [SDLTTSChunkFactory buildTTSChunksFromSimple:timeoutText];
+ msg.vrHelpTitle = vrHelpTitle;
+ msg.vrHelp = [vrHelp mutableCopy];
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+
++(SDLSetGlobalProperties*) buildSetGlobalPropertiesWithHelpText:(NSString*) helpText timeoutText:(NSString*) timeoutText correlationID:(NSNumber*) correlationID {
+
+ SDLSetGlobalProperties* msg = [[SDLSetGlobalProperties alloc] init];
+ msg.helpPrompt = [SDLTTSChunkFactory buildTTSChunksFromSimple:helpText];
+ msg.timeoutPrompt = [SDLTTSChunkFactory buildTTSChunksFromSimple:timeoutText];
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+//*****
+
+
+//***** SetMediaClockTimer *****
++(SDLSetMediaClockTimer*) buildSetMediaClockTimerWithHours:(NSNumber*) hours minutes:(NSNumber*) minutes seconds:(NSNumber*) seconds updateMode:(SDLUpdateMode*) updateMode correlationID:(NSNumber*) correlationID {
+
+ SDLSetMediaClockTimer* msg = [[SDLSetMediaClockTimer alloc] init];
+ SDLStartTime* startTime = [[SDLStartTime alloc] init];
+ startTime.hours = hours;
+ startTime.minutes = minutes;
+ startTime.seconds = seconds;
+ msg.startTime = startTime;
+ msg.updateMode = updateMode;
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+
++(SDLSetMediaClockTimer*) buildSetMediaClockTimerWithUpdateMode:(SDLUpdateMode*) updateMode correlationID:(NSNumber*) correlationID {
+
+ SDLSetMediaClockTimer* msg = [[SDLSetMediaClockTimer alloc] init];
+ msg.updateMode = updateMode;
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+//*****
+
+
+//***** Show *****
++(SDLShow*) buildShowWithMainField1:(NSString*) mainField1 mainField2: (NSString*) mainField2 mainField3: (NSString*) mainField3 mainField4: (NSString*) mainField4 statusBar:(NSString*) statusBar mediaClock:(NSString*) mediaClock mediaTrack:(NSString*) mediaTrack alignment:(SDLTextAlignment*) textAlignment graphic:(SDLImage*) graphic softButtons:(NSArray*) softButtons customPresets:(NSArray*) customPresets correlationID:(NSNumber*) correlationID {
+
+ SDLShow* msg = [[SDLShow alloc] init];
+ msg.correlationID = correlationID;
+ msg.mainField1 = mainField1;
+ msg.mainField2 = mainField2;
+ msg.mainField3 = mainField3;
+ msg.mainField4 = mainField4;
+ msg.statusBar = statusBar;
+ msg.mediaClock = mediaClock;
+ msg.mediaTrack = mediaTrack;
+ msg.alignment = textAlignment;
+ msg.graphic = graphic;
+ msg.softButtons = [softButtons mutableCopy];
+ msg.customPresets = [customPresets mutableCopy];
+
+ return msg;
+}
+
++(SDLShow*) buildShowWithMainField1:(NSString*) mainField1 mainField2: (NSString*) mainField2 statusBar:(NSString*) statusBar mediaClock:(NSString*) mediaClock mediaTrack:(NSString*) mediaTrack alignment:(SDLTextAlignment*) textAlignment correlationID:(NSNumber*) correlationID {
+
+ SDLShow* msg = [[SDLShow alloc] init];
+ msg.correlationID = correlationID;
+ msg.mainField1 = mainField1;
+ msg.mainField2 = mainField2;
+ msg.statusBar = statusBar;
+ msg.mediaClock = mediaClock;
+ msg.mediaTrack = mediaTrack;
+ msg.alignment = textAlignment;
+
+ return msg;
+}
+
++(SDLShow*) buildShowWithMainField1:(NSString*) mainField1 mainField2: (NSString*) mainField2 alignment:(SDLTextAlignment*) alignment correlationID:(NSNumber*) correlationID {
+
+ return [SDLRPCRequestFactory buildShowWithMainField1:mainField1 mainField2:mainField2 statusBar:nil mediaClock:nil mediaTrack:nil alignment:alignment correlationID:correlationID];
+}
+//*****
+
+
+//***** Slider *****
++(SDLSlider*) buildSliderDynamicFooterWithNumTicks:(NSNumber*) numTicks position:(NSNumber*) position sliderHeader:(NSString*) sliderHeader sliderFooter:(NSArray*) sliderFooter timeout:(NSNumber*) timeout correlationID:(NSNumber*) correlationID {\
+ SDLSlider* msg = [[SDLSlider alloc] init];
+ msg.correlationID = correlationID;
+ msg.numTicks = numTicks;
+ msg.position = position;
+ msg.sliderHeader = sliderHeader;
+ msg.sliderFooter = [sliderFooter mutableCopy];
+ msg.timeout = timeout;
+
+ return msg;
+}
+
++(SDLSlider*) buildSliderStaticFooterWithNumTicks:(NSNumber*) numTicks position:(NSNumber*) position sliderHeader:(NSString*) sliderHeader sliderFooter:(NSString*) sliderFooter timeout:(NSNumber*) timeout correlationID:(NSNumber*) correlationID {
+
+ NSArray* sliderFooters = [NSArray arrayWithObject:sliderFooter];
+
+ // Populates array with the same footer value for each position
+ for (UInt32 i = 1; i < numTicks.unsignedIntegerValue; i++) {
+ sliderFooters = [sliderFooters arrayByAddingObject:sliderFooter];
+ }
+
+ return [SDLRPCRequestFactory buildSliderDynamicFooterWithNumTicks:numTicks position:position sliderHeader:sliderHeader sliderFooter:sliderFooters timeout:timeout correlationID:correlationID];
+}
+//*****
+
+
+//***** Speak *****
++(SDLSpeak*) buildSpeakWithTTSChunks:(NSArray*) ttsChunks correlationID:(NSNumber*) correlationID {
+
+ SDLSpeak* msg = [[SDLSpeak alloc] init];
+ msg.correlationID = correlationID;
+ msg.ttsChunks = [ttsChunks mutableCopy];
+
+ return msg;
+}
+
+//***
++(SDLSpeak*) buildSpeakWithTTS:(NSString*) ttsText correlationID:(NSNumber*) correlationID {
+
+ SDLTTSChunk* simpleChunk = [[SDLTTSChunk alloc] init];
+ simpleChunk.text = ttsText;
+ simpleChunk.type = SDLSpeechCapabilities.TEXT;
+ NSArray* ttsChunks = [NSMutableArray arrayWithObject:simpleChunk];
+
+ return [SDLRPCRequestFactory buildSpeakWithTTSChunks:ttsChunks correlationID:correlationID];
+
+}
+//*****
+
+
++(SDLSubscribeButton*) buildSubscribeButtonWithName:(SDLButtonName*) buttonName correlationID:(NSNumber*) correlationID {
+
+ SDLSubscribeButton* msg = [[SDLSubscribeButton alloc] init];
+ msg.correlationID = correlationID;
+ msg.buttonName = buttonName;
+
+ return msg;
+}
+
++(SDLSubscribeVehicleData*) buildSubscribeVehicleDataWithGPS:(NSNumber*) gps speed:(NSNumber*) speed rpm:(NSNumber*) rpm fuelLevel:(NSNumber*) fuelLevel fuelLevelState:(NSNumber*) fuelLevelState instantFuelConsumption:(NSNumber*) instantFuelConsumption externalTemperature:(NSNumber*) externalTemperature prndl:(NSNumber*) prndl tirePressure:(NSNumber*) tirePressure odometer:(NSNumber*) odometer beltStatus:(NSNumber*) beltStatus bodyInformation:(NSNumber*) bodyInformation deviceStatus:(NSNumber*) deviceStatus driverBraking:(NSNumber*) driverBraking wiperStatus:(NSNumber*) wiperStatus headLampStatus:(NSNumber*) headLampStatus engineTorque:(NSNumber*) engineTorque accPedalPosition:(NSNumber*) accPedalPosition steeringWheelAngle:(NSNumber*) steeringWheelAngle correlationID:(NSNumber*) correlationID {
+
+ SDLSubscribeVehicleData* msg = [[SDLSubscribeVehicleData alloc] init];
+ msg.gps = gps;
+ msg.speed = speed;
+ msg.rpm = rpm;
+ msg.fuelLevel = fuelLevel;
+ msg.fuelLevel_State = fuelLevelState;
+ msg.instantFuelConsumption = instantFuelConsumption;
+ msg.externalTemperature = externalTemperature;
+ msg.prndl = prndl;
+ msg.tirePressure = tirePressure;
+ msg.odometer = odometer;
+ msg.beltStatus = beltStatus;
+ msg.bodyInformation = bodyInformation;
+ msg.deviceStatus = deviceStatus;
+ msg.driverBraking = driverBraking;
+ msg.wiperStatus = wiperStatus;
+ msg.headLampStatus = headLampStatus;
+ msg.engineTorque = engineTorque;
+ msg.accPedalPosition = accPedalPosition;
+ msg.steeringWheelAngle = steeringWheelAngle;
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+
++(SDLUnregisterAppInterface*) buildUnregisterAppInterfaceWithCorrelationID:(NSNumber*) correlationID {
+
+ SDLUnregisterAppInterface* msg = [[SDLUnregisterAppInterface alloc] init];
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+
++(SDLUnsubscribeButton*) buildUnsubscribeButtonWithName:(SDLButtonName*) buttonName correlationID:(NSNumber*) correlationID {
+
+ SDLUnsubscribeButton *msg = [[SDLUnsubscribeButton alloc] init];
+ msg.buttonName = buttonName;
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+
++(SDLUnsubscribeVehicleData*) buildUnsubscribeVehicleDataWithGPS:(NSNumber*) gps speed:(NSNumber*) speed rpm:(NSNumber*) rpm fuelLevel:(NSNumber*) fuelLevel fuelLevelState:(NSNumber*) fuelLevelState instantFuelConsumption:(NSNumber*) instantFuelConsumption externalTemperature:(NSNumber*) externalTemperature prndl:(NSNumber*) prndl tirePressure:(NSNumber*) tirePressure odometer:(NSNumber*) odometer beltStatus:(NSNumber*) beltStatus bodyInformation:(NSNumber*) bodyInformation deviceStatus:(NSNumber*) deviceStatus driverBraking:(NSNumber*) driverBraking wiperStatus:(NSNumber*) wiperStatus headLampStatus:(NSNumber*) headLampStatus engineTorque:(NSNumber*) engineTorque accPedalPosition:(NSNumber*) accPedalPosition steeringWheelAngle:(NSNumber*) steeringWheelAngle correlationID:(NSNumber*) correlationID {
+
+ SDLUnsubscribeVehicleData* msg = [[SDLUnsubscribeVehicleData alloc] init];
+ msg.gps = gps;
+ msg.speed = speed;
+ msg.rpm = rpm;
+ msg.fuelLevel = fuelLevel;
+ msg.fuelLevel_State = fuelLevelState;
+ msg.instantFuelConsumption = instantFuelConsumption;
+ msg.externalTemperature = externalTemperature;
+ msg.prndl = prndl;
+ msg.tirePressure = tirePressure;
+ msg.odometer = odometer;
+ msg.beltStatus = beltStatus;
+ msg.bodyInformation = bodyInformation;
+ msg.deviceStatus = deviceStatus;
+ msg.driverBraking = driverBraking;
+ msg.wiperStatus = wiperStatus;
+ msg.headLampStatus = headLampStatus;
+ msg.engineTorque = engineTorque;
+ msg.accPedalPosition = accPedalPosition;
+ msg.steeringWheelAngle = steeringWheelAngle;
+ msg.correlationID = correlationID;
+
+ return msg;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCResponse.h
new file mode 100644
index 000000000..a6309a244
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCResponse.h
@@ -0,0 +1,17 @@
+// SDLRPCResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLResult.h"
+
+@interface SDLRPCResponse : SDLRPCMessage {}
+
+@property(strong) NSNumber* correlationID;
+@property(strong) NSNumber* success;
+@property(strong) SDLResult* resultCode;
+@property(strong) NSString* info;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCResponse.m
new file mode 100644
index 000000000..c7f23f62d
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRPCResponse.m
@@ -0,0 +1,64 @@
+// SDLRPCResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLRPCResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLRPCResponse
+
+-(NSNumber*) correlationID {
+ return [function objectForKey:NAMES_correlationID];
+}
+
+-(void) setCorrelationID:(NSNumber *)corrID {
+ if (corrID != nil) {
+ [function setObject:corrID forKey:NAMES_correlationID];
+ } else {
+ [function removeObjectForKey:NAMES_correlationID];
+ }
+}
+
+-(void) setSuccess:(NSNumber*) success {
+ if (success != nil) {
+ [parameters setObject:success forKey:NAMES_success];
+ } else {
+ [parameters removeObjectForKey:NAMES_success];
+ }
+}
+
+-(NSNumber*) success {
+ return [parameters objectForKey:NAMES_success];
+}
+
+-(void) setResultCode:(SDLResult*) resultCode {
+ if (resultCode != nil) {
+ [parameters setObject:resultCode forKey:NAMES_resultCode];
+ } else {
+ [parameters removeObjectForKey:NAMES_resultCode];
+ }
+}
+
+-(SDLResult*) resultCode {
+ NSObject* obj = [parameters objectForKey:NAMES_resultCode];
+ if ([obj isKindOfClass:SDLResult.class]) {
+ return (SDLResult*)obj;
+ } else {
+ return [SDLResult valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setInfo:(NSString*) info {
+ if (info != nil) {
+ [parameters setObject:info forKey:NAMES_info];
+ } else {
+ [parameters removeObjectForKey:NAMES_info];
+ }
+}
+
+-(NSString*) info {
+ return [parameters objectForKey:NAMES_info];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLReadDID.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLReadDID.h
new file mode 100644
index 000000000..cf26df86c
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLReadDID.h
@@ -0,0 +1,16 @@
+// SDLReadDID.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLReadDID : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* ecuName;
+@property(strong) NSMutableArray* didLocation;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLReadDID.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLReadDID.m
new file mode 100644
index 000000000..ec840b752
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLReadDID.m
@@ -0,0 +1,45 @@
+// SDLReadDID.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLReadDID.h"
+
+#import "SDLNames.h"
+
+@implementation SDLReadDID
+
+-(id) init {
+ if (self = [super initWithName:NAMES_ReadDID]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setEcuName:(NSNumber*) ecuName {
+ if (ecuName != nil) {
+ [parameters setObject:ecuName forKey:NAMES_ecuName];
+ } else {
+ [parameters removeObjectForKey:NAMES_ecuName];
+ }
+}
+
+-(NSNumber*) ecuName {
+ return [parameters objectForKey:NAMES_ecuName];
+}
+
+-(void) setDidLocation:(NSMutableArray*) didLocation {
+ if (didLocation != nil) {
+ [parameters setObject:didLocation forKey:NAMES_didLocation];
+ } else {
+ [parameters removeObjectForKey:NAMES_didLocation];
+ }
+}
+
+-(NSMutableArray*) didLocation {
+ return [parameters objectForKey:NAMES_didLocation];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLReadDIDResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLReadDIDResponse.h
new file mode 100644
index 000000000..90934fd57
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLReadDIDResponse.h
@@ -0,0 +1,15 @@
+// SDLReadDIDResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLReadDIDResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSMutableArray* didResult;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLReadDIDResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLReadDIDResponse.m
new file mode 100644
index 000000000..875d6b1ec
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLReadDIDResponse.m
@@ -0,0 +1,43 @@
+// SDLReadDIDResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLReadDIDResponse.h"
+
+#import "SDLNames.h"
+#import "SDLDIDResult.h"
+
+@implementation SDLReadDIDResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_ReadDID]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setDidResult:(NSMutableArray*) didResult {
+ if (didResult != nil) {
+ [parameters setObject:didResult forKey:NAMES_didResult];
+ } else {
+ [parameters removeObjectForKey:NAMES_didResult];
+ }
+}
+
+-(NSMutableArray*) didResult {
+ NSMutableArray* array = [parameters objectForKey:NAMES_didResult];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLDIDResult.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLDIDResult alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLRegisterAppInterface.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRegisterAppInterface.h
new file mode 100644
index 000000000..5ad6df6fd
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRegisterAppInterface.h
@@ -0,0 +1,30 @@
+// SDLRegisterAppInterface.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+#import "SDLSyncMsgVersion.h"
+#import "SDLLanguage.h"
+#import "SDLDeviceInfo.h"
+
+@interface SDLRegisterAppInterface : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLSyncMsgVersion* syncMsgVersion;
+@property(strong) NSString* appName;
+@property(strong) NSMutableArray* ttsName;
+@property(strong) NSString* ngnMediaScreenAppName;
+@property(strong) NSMutableArray* vrSynonyms;
+@property(strong) NSNumber* isMediaApplication;
+@property(strong) SDLLanguage* languageDesired;
+@property(strong) SDLLanguage* hmiDisplayLanguageDesired;
+@property(strong) NSMutableArray* appHMIType;
+@property(strong) NSString* hashID;
+@property(strong) SDLDeviceInfo* deviceInfo;
+@property(strong) NSString* appID;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLRegisterAppInterface.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRegisterAppInterface.m
new file mode 100644
index 000000000..4d68ed2e6
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRegisterAppInterface.m
@@ -0,0 +1,205 @@
+// SDLRegisterAppInterface.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLRegisterAppInterface.h"
+
+#import "SDLNames.h"
+#import "SDLTTSChunk.h"
+#import "SDLAppHMIType.h"
+
+@implementation SDLRegisterAppInterface
+
+-(id) init {
+ if (self = [super initWithName:NAMES_RegisterAppInterface]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setSyncMsgVersion:(SDLSyncMsgVersion*) syncMsgVersion {
+ if (syncMsgVersion != nil) {
+ [parameters setObject:syncMsgVersion forKey:NAMES_syncMsgVersion];
+ } else {
+ [parameters removeObjectForKey:NAMES_syncMsgVersion];
+ }
+}
+
+-(SDLSyncMsgVersion*) syncMsgVersion {
+ NSObject* obj = [parameters objectForKey:NAMES_syncMsgVersion];
+ if ([obj isKindOfClass:SDLSyncMsgVersion.class]) {
+ return (SDLSyncMsgVersion*)obj;
+ } else {
+ return [[SDLSyncMsgVersion alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setAppName:(NSString*) appName {
+ if (appName != nil) {
+ [parameters setObject:appName forKey:NAMES_appName];
+ } else {
+ [parameters removeObjectForKey:NAMES_appName];
+ }
+}
+
+-(NSString*) appName {
+ return [parameters objectForKey:NAMES_appName];
+}
+
+-(void) setTtsName:(NSMutableArray*) ttsName {
+ if (ttsName != nil) {
+ [parameters setObject:ttsName forKey:NAMES_ttsName];
+ } else {
+ [parameters removeObjectForKey:NAMES_ttsName];
+ }
+}
+
+-(NSMutableArray*) ttsName {
+ NSMutableArray* array = [parameters objectForKey:NAMES_ttsName];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLTTSChunk.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLTTSChunk alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+-(void) setNgnMediaScreenAppName:(NSString*) ngnMediaScreenAppName {
+ if (ngnMediaScreenAppName != nil) {
+ [parameters setObject:ngnMediaScreenAppName forKey:NAMES_ngnMediaScreenAppName];
+ } else {
+ [parameters removeObjectForKey:NAMES_ngnMediaScreenAppName];
+ }
+}
+
+-(NSString*) ngnMediaScreenAppName {
+ return [parameters objectForKey:NAMES_ngnMediaScreenAppName];
+}
+
+-(void) setVrSynonyms:(NSMutableArray*) vrSynonyms {
+ if (vrSynonyms != nil) {
+ [parameters setObject:vrSynonyms forKey:NAMES_vrSynonyms];
+ } else {
+ [parameters removeObjectForKey:NAMES_vrSynonyms];
+ }
+}
+
+-(NSMutableArray*) vrSynonyms {
+ return [parameters objectForKey:NAMES_vrSynonyms];
+}
+
+-(void) setIsMediaApplication:(NSNumber*) isMediaApplication {
+ if (isMediaApplication != nil) {
+ [parameters setObject:isMediaApplication forKey:NAMES_isMediaApplication];
+ } else {
+ [parameters removeObjectForKey:NAMES_isMediaApplication];
+ }
+}
+
+-(NSNumber*) isMediaApplication {
+ return [parameters objectForKey:NAMES_isMediaApplication];
+}
+
+-(void) setLanguageDesired:(SDLLanguage*) languageDesired {
+ if (languageDesired != nil) {
+ [parameters setObject:languageDesired forKey:NAMES_languageDesired];
+ } else {
+ [parameters removeObjectForKey:NAMES_languageDesired];
+ }
+}
+
+-(SDLLanguage*) languageDesired {
+ NSObject* obj = [parameters objectForKey:NAMES_languageDesired];
+ if ([obj isKindOfClass:SDLLanguage.class]) {
+ return (SDLLanguage*)obj;
+ } else {
+ return [SDLLanguage valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setHmiDisplayLanguageDesired:(SDLLanguage*) hmiDisplayLanguageDesired {
+ if (hmiDisplayLanguageDesired != nil) {
+ [parameters setObject:hmiDisplayLanguageDesired forKey:NAMES_hmiDisplayLanguageDesired];
+ } else {
+ [parameters removeObjectForKey:NAMES_hmiDisplayLanguageDesired];
+ }
+}
+
+-(SDLLanguage*) hmiDisplayLanguageDesired {
+ NSObject* obj = [parameters objectForKey:NAMES_hmiDisplayLanguageDesired];
+ if ([obj isKindOfClass:SDLLanguage.class]) {
+ return (SDLLanguage*)obj;
+ } else {
+ return [SDLLanguage valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setAppHMIType:(NSMutableArray*) appHMIType {
+ if (appHMIType != nil) {
+ [parameters setObject:appHMIType forKey:NAMES_appHMIType];
+ } else {
+ [parameters removeObjectForKey:NAMES_appHMIType];
+ }
+}
+
+-(NSMutableArray*) appHMIType {
+ NSMutableArray* array = [parameters objectForKey:NAMES_appHMIType];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLAppHMIType.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSString* enumString in array) {
+ [newList addObject:[SDLAppHMIType valueOf:enumString]];
+ }
+ return newList;
+ }
+}
+
+-(void) setHashID:(NSString*) hashID {
+ if (hashID != nil) {
+ [parameters setObject:hashID forKey:NAMES_hashID];
+ } else {
+ [parameters removeObjectForKey:NAMES_hashID];
+ }
+}
+
+-(NSString*) hashID {
+ return [parameters objectForKey:NAMES_hashID];
+}
+
+-(void) setDeviceInfo:(SDLDeviceInfo*) deviceInfo {
+ if (deviceInfo != nil) {
+ [parameters setObject:deviceInfo forKey:NAMES_deviceInfo];
+ } else {
+ [parameters removeObjectForKey:NAMES_deviceInfo];
+ }
+}
+
+-(SDLDeviceInfo*) deviceInfo {
+ NSObject* obj = [parameters objectForKey:NAMES_deviceInfo];
+ if ([obj isKindOfClass:SDLDeviceInfo.class]) {
+ return (SDLDeviceInfo*)obj;
+ } else {
+ return [[SDLDeviceInfo alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setAppID:(NSString*) appID {
+ if (appID != nil) {
+ [parameters setObject:appID forKey:NAMES_appID];
+ } else {
+ [parameters removeObjectForKey:NAMES_appID];
+ }
+}
+
+-(NSString*) appID {
+ return [parameters objectForKey:NAMES_appID];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLRegisterAppInterfaceResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRegisterAppInterfaceResponse.h
new file mode 100644
index 000000000..d82ef06fb
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRegisterAppInterfaceResponse.h
@@ -0,0 +1,34 @@
+// SDLRegisterAppInterfaceResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+#import "SDLSyncMsgVersion.h"
+#import "SDLLanguage.h"
+#import "SDLDisplayCapabilities.h"
+#import "SDLPresetBankCapabilities.h"
+#import "SDLVehicleType.h"
+
+@interface SDLRegisterAppInterfaceResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLSyncMsgVersion* syncMsgVersion;
+@property(strong) SDLLanguage* language;
+@property(strong) SDLLanguage* hmiDisplayLanguage;
+@property(strong) SDLDisplayCapabilities* displayCapabilities;
+@property(strong) NSMutableArray* buttonCapabilities;
+@property(strong) NSMutableArray* softButtonCapabilities;
+@property(strong) SDLPresetBankCapabilities* presetBankCapabilities;
+@property(strong) NSMutableArray* hmiZoneCapabilities;
+@property(strong) NSMutableArray* speechCapabilities;
+@property(strong) NSMutableArray* prerecordedSpeech;
+@property(strong) NSMutableArray* vrCapabilities;
+@property(strong) NSMutableArray* audioPassThruCapabilities;
+@property(strong) SDLVehicleType* vehicleType;
+@property(strong) NSMutableArray* supportedDiagModes;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLRegisterAppInterfaceResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRegisterAppInterfaceResponse.m
new file mode 100644
index 000000000..d46db4943
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRegisterAppInterfaceResponse.m
@@ -0,0 +1,289 @@
+// SDLRegisterAppInterfaceResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLRegisterAppInterfaceResponse.h"
+
+#import "SDLNames.h"
+#import "SDLButtonCapabilities.h"
+#import "SDLSoftButtonCapabilities.h"
+#import "SDLHmiZoneCapabilities.h"
+#import "SDLSpeechCapabilities.h"
+#import "SDLPrerecordedSpeech.h"
+#import "SDLVrCapabilities.h"
+#import "SDLAudioPassThruCapabilities.h"
+
+@implementation SDLRegisterAppInterfaceResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_RegisterAppInterface]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setSyncMsgVersion:(SDLSyncMsgVersion*) syncMsgVersion {
+ if (syncMsgVersion != nil) {
+ [parameters setObject:syncMsgVersion forKey:NAMES_syncMsgVersion];
+ } else {
+ [parameters removeObjectForKey:NAMES_syncMsgVersion];
+ }
+}
+
+-(SDLSyncMsgVersion*) syncMsgVersion {
+ NSObject* obj = [parameters objectForKey:NAMES_syncMsgVersion];
+ if ([obj isKindOfClass:SDLSyncMsgVersion.class]) {
+ return (SDLSyncMsgVersion*)obj;
+ } else {
+ return [[SDLSyncMsgVersion alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setLanguage:(SDLLanguage*) language {
+ if (language != nil) {
+ [parameters setObject:language forKey:NAMES_language];
+ } else {
+ [parameters removeObjectForKey:NAMES_language];
+ }
+}
+
+-(SDLLanguage*) language {
+ NSObject* obj = [parameters objectForKey:NAMES_language];
+ if ([obj isKindOfClass:SDLLanguage.class]) {
+ return (SDLLanguage*)obj;
+ } else {
+ return [SDLLanguage valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setHmiDisplayLanguage:(SDLLanguage*) hmiDisplayLanguage {
+ if (hmiDisplayLanguage != nil) {
+ [parameters setObject:hmiDisplayLanguage forKey:NAMES_hmiDisplayLanguage];
+ } else {
+ [parameters removeObjectForKey:NAMES_hmiDisplayLanguage];
+ }
+}
+
+-(SDLLanguage*) hmiDisplayLanguage {
+ NSObject* obj = [parameters objectForKey:NAMES_hmiDisplayLanguage];
+ if ([obj isKindOfClass:SDLLanguage.class]) {
+ return (SDLLanguage*)obj;
+ } else {
+ return [SDLLanguage valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setDisplayCapabilities:(SDLDisplayCapabilities*) displayCapabilities {
+ if (displayCapabilities != nil) {
+ [parameters setObject:displayCapabilities forKey:NAMES_displayCapabilities];
+ } else {
+ [parameters removeObjectForKey:NAMES_displayCapabilities];
+ }
+}
+
+-(SDLDisplayCapabilities*) displayCapabilities {
+ NSObject* obj = [parameters objectForKey:NAMES_displayCapabilities];
+ if ([obj isKindOfClass:SDLDisplayCapabilities.class]) {
+ return (SDLDisplayCapabilities*)obj;
+ } else {
+ return [[SDLDisplayCapabilities alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setButtonCapabilities:(NSMutableArray*) buttonCapabilities {
+ if (buttonCapabilities != nil) {
+ [parameters setObject:buttonCapabilities forKey:NAMES_buttonCapabilities];
+ } else {
+ [parameters removeObjectForKey:NAMES_buttonCapabilities];
+ }
+}
+
+-(NSMutableArray*) buttonCapabilities {
+ NSMutableArray* array = [parameters objectForKey:NAMES_buttonCapabilities];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLButtonCapabilities.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLButtonCapabilities alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+-(void) setSoftButtonCapabilities:(NSMutableArray*) softButtonCapabilities {
+ if (softButtonCapabilities != nil) {
+ [parameters setObject:softButtonCapabilities forKey:NAMES_softButtonCapabilities];
+ } else {
+ [parameters removeObjectForKey:NAMES_softButtonCapabilities];
+ }
+}
+
+-(NSMutableArray*) softButtonCapabilities {
+ NSMutableArray* array = [parameters objectForKey:NAMES_softButtonCapabilities];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLSoftButtonCapabilities.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLSoftButtonCapabilities alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+-(void) setPresetBankCapabilities:(SDLPresetBankCapabilities*) presetBankCapabilities {
+ if (presetBankCapabilities != nil) {
+ [parameters setObject:presetBankCapabilities forKey:NAMES_presetBankCapabilities];
+ } else {
+ [parameters removeObjectForKey:NAMES_presetBankCapabilities];
+ }
+}
+
+-(SDLPresetBankCapabilities*) presetBankCapabilities {
+ NSObject* obj = [parameters objectForKey:NAMES_presetBankCapabilities];
+ if ([obj isKindOfClass:SDLPresetBankCapabilities.class]) {
+ return (SDLPresetBankCapabilities*)obj;
+ } else {
+ return [[SDLPresetBankCapabilities alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setHmiZoneCapabilities:(NSMutableArray*) hmiZoneCapabilities {
+ if (hmiZoneCapabilities != nil) {
+ [parameters setObject:hmiZoneCapabilities forKey:NAMES_hmiZoneCapabilities];
+ } else {
+ [parameters removeObjectForKey:NAMES_hmiZoneCapabilities];
+ }
+}
+
+-(NSMutableArray*) hmiZoneCapabilities {
+ NSMutableArray* array = [parameters objectForKey:NAMES_hmiZoneCapabilities];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLHmiZoneCapabilities.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSString* enumString in array) {
+ [newList addObject:[SDLHmiZoneCapabilities valueOf:enumString]];
+ }
+ return newList;
+ }
+}
+
+-(void) setSpeechCapabilities:(NSMutableArray*) speechCapabilities {
+ if (speechCapabilities != nil) {
+ [parameters setObject:speechCapabilities forKey:NAMES_speechCapabilities];
+ } else {
+ [parameters removeObjectForKey:NAMES_speechCapabilities];
+ }
+}
+
+-(NSMutableArray*) speechCapabilities {
+ NSMutableArray* array = [parameters objectForKey:NAMES_speechCapabilities];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLSpeechCapabilities.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSString* enumString in array) {
+ [newList addObject:[SDLSpeechCapabilities valueOf:enumString]];
+ }
+ return newList;
+ }
+}
+
+-(void) setPrerecordedSpeech:(NSMutableArray*) prerecordedSpeech {
+ if (prerecordedSpeech != nil) {
+ [parameters setObject:prerecordedSpeech forKey:NAMES_prerecordedSpeech];
+ } else {
+ [parameters removeObjectForKey:NAMES_prerecordedSpeech];
+ }
+}
+
+-(NSMutableArray*) prerecordedSpeech {
+ NSMutableArray* array = [parameters objectForKey:NAMES_prerecordedSpeech];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLPrerecordedSpeech.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSString* enumString in array) {
+ [newList addObject:[SDLPrerecordedSpeech valueOf:enumString]];
+ }
+ return newList;
+ }
+}
+
+-(void) setVrCapabilities:(NSMutableArray*) vrCapabilities {
+ if (vrCapabilities != nil) {
+ [parameters setObject:vrCapabilities forKey:NAMES_vrCapabilities];
+ } else {
+ [parameters removeObjectForKey:NAMES_vrCapabilities];
+ }
+}
+
+-(NSMutableArray*) vrCapabilities {
+ NSMutableArray* array = [parameters objectForKey:NAMES_vrCapabilities];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLVrCapabilities.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSString* enumString in array) {
+ [newList addObject:[SDLVrCapabilities valueOf:enumString]];
+ }
+ return newList;
+ }
+}
+
+-(void) setAudioPassThruCapabilities:(NSMutableArray*) audioPassThruCapabilities {
+ if (audioPassThruCapabilities != nil) {
+ [parameters setObject:audioPassThruCapabilities forKey:NAMES_audioPassThruCapabilities];
+ } else {
+ [parameters removeObjectForKey:NAMES_audioPassThruCapabilities];
+ }
+}
+
+-(NSMutableArray*) audioPassThruCapabilities {
+ NSMutableArray* array = [parameters objectForKey:NAMES_audioPassThruCapabilities];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLAudioPassThruCapabilities.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLAudioPassThruCapabilities alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+-(void) setVehicleType:(SDLVehicleType*) vehicleType {
+ if (vehicleType != nil) {
+ [parameters setObject:vehicleType forKey:NAMES_vehicleType];
+ } else {
+ [parameters removeObjectForKey:NAMES_vehicleType];
+ }
+}
+
+-(SDLVehicleType*) vehicleType {
+ NSObject* obj = [parameters objectForKey:NAMES_vehicleType];
+ if ([obj isKindOfClass:SDLVehicleType.class]) {
+ return (SDLVehicleType*)obj;
+ } else {
+ return [[SDLVehicleType alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setSupportedDiagModes:(NSMutableArray*) supportedDiagModes {
+ if (supportedDiagModes != nil) {
+ [parameters setObject:supportedDiagModes forKey:NAMES_supportedDiagModes];
+ } else {
+ [parameters removeObjectForKey:NAMES_supportedDiagModes];
+ }
+}
+
+-(NSMutableArray*) supportedDiagModes {
+ return [parameters objectForKey:NAMES_supportedDiagModes];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLRequestType.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRequestType.h
new file mode 100644
index 000000000..35cac457a
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRequestType.h
@@ -0,0 +1,20 @@
+// SDLRequestType.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLRequestType : SDLEnum {}
+
++(SDLRequestType*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLRequestType*) HTTP;
++(SDLRequestType*) FILE_RESUME;
++(SDLRequestType*) AUTH_REQUEST;
++(SDLRequestType*) AUTH_CHALLENGE;
++(SDLRequestType*) AUTH_ACK;
++(SDLRequestType*) PROPRIETARY;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLRequestType.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRequestType.m
new file mode 100644
index 000000000..5f5a714d1
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLRequestType.m
@@ -0,0 +1,83 @@
+// SDLRequestType.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLRequestType.h"
+
+SDLRequestType* SDLRequestType_HTTP = nil;
+SDLRequestType* SDLRequestType_FILE_RESUME = nil;
+SDLRequestType* SDLRequestType_AUTH_REQUEST = nil;
+SDLRequestType* SDLRequestType_AUTH_CHALLENGE = nil;
+SDLRequestType* SDLRequestType_AUTH_ACK = nil;
+SDLRequestType* SDLRequestType_PROPRIETARY = nil;
+
+NSMutableArray* SDLRequestType_values = nil;
+
+@implementation SDLRequestType
+
++(SDLRequestType*) valueOf:(NSString*) value {
+ for (SDLRequestType* item in SDLRequestType.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLRequestType_values == nil) {
+ SDLRequestType_values = [[NSMutableArray alloc] initWithObjects:
+ SDLRequestType.HTTP,
+ SDLRequestType.FILE_RESUME,
+ SDLRequestType.AUTH_REQUEST,
+ SDLRequestType.AUTH_CHALLENGE,
+ SDLRequestType.AUTH_ACK,
+ SDLRequestType.PROPRIETARY,
+ nil];
+ }
+ return SDLRequestType_values;
+}
+
++(SDLRequestType*) HTTP {
+ if (SDLRequestType_HTTP == nil) {
+ SDLRequestType_HTTP = [[SDLRequestType alloc] initWithValue:@"HTTP"];
+ }
+ return SDLRequestType_HTTP;
+}
+
++(SDLRequestType*) FILE_RESUME {
+ if (SDLRequestType_FILE_RESUME == nil) {
+ SDLRequestType_FILE_RESUME = [[SDLRequestType alloc] initWithValue:@"FILE_RESUME"];
+ }
+ return SDLRequestType_FILE_RESUME;
+}
+
++(SDLRequestType*) AUTH_REQUEST {
+ if (SDLRequestType_AUTH_REQUEST == nil) {
+ SDLRequestType_AUTH_REQUEST = [[SDLRequestType alloc] initWithValue:@"AUTH_REQUEST"];
+ }
+ return SDLRequestType_AUTH_REQUEST;
+}
+
++(SDLRequestType*) AUTH_CHALLENGE {
+ if (SDLRequestType_AUTH_CHALLENGE == nil) {
+ SDLRequestType_AUTH_CHALLENGE = [[SDLRequestType alloc] initWithValue:@"AUTH_CHALLENGE"];
+ }
+ return SDLRequestType_AUTH_CHALLENGE;
+}
+
++(SDLRequestType*) AUTH_ACK {
+ if (SDLRequestType_AUTH_ACK == nil) {
+ SDLRequestType_AUTH_ACK = [[SDLRequestType alloc] initWithValue:@"AUTH_ACK"];
+ }
+ return SDLRequestType_AUTH_ACK;
+}
+
++(SDLRequestType*) PROPRIETARY {
+ if (SDLRequestType_PROPRIETARY == nil) {
+ SDLRequestType_PROPRIETARY = [[SDLRequestType alloc] initWithValue:@"PROPRIETARY"];
+ }
+ return SDLRequestType_PROPRIETARY;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLResetGlobalProperties.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLResetGlobalProperties.h
new file mode 100644
index 000000000..d2f67d517
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLResetGlobalProperties.h
@@ -0,0 +1,15 @@
+// SDLResetGlobalProperties.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLResetGlobalProperties : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSMutableArray* properties;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLResetGlobalProperties.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLResetGlobalProperties.m
new file mode 100644
index 000000000..b9522fec1
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLResetGlobalProperties.m
@@ -0,0 +1,43 @@
+// SDLResetGlobalProperties.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLResetGlobalProperties.h"
+
+#import "SDLNames.h"
+#import "SDLGlobalProperty.h"
+
+@implementation SDLResetGlobalProperties
+
+-(id) init {
+ if (self = [super initWithName:NAMES_ResetGlobalProperties]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setProperties:(NSMutableArray*) properties {
+ if (properties != nil) {
+ [parameters setObject:properties forKey:NAMES_properties];
+ } else {
+ [parameters removeObjectForKey:NAMES_properties];
+ }
+}
+
+-(NSMutableArray*) properties {
+ NSMutableArray* array = [parameters objectForKey:NAMES_properties];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLGlobalProperty.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSString* enumString in array) {
+ [newList addObject:[SDLGlobalProperty valueOf:enumString]];
+ }
+ return newList;
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLResetGlobalPropertiesResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLResetGlobalPropertiesResponse.h
new file mode 100644
index 000000000..fc1d4a79d
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLResetGlobalPropertiesResponse.h
@@ -0,0 +1,13 @@
+// SDLResetGlobalPropertiesResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLResetGlobalPropertiesResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLResetGlobalPropertiesResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLResetGlobalPropertiesResponse.m
new file mode 100644
index 000000000..a2e87c168
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLResetGlobalPropertiesResponse.m
@@ -0,0 +1,21 @@
+// SDLResetGlobalPropertiesResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLResetGlobalPropertiesResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLResetGlobalPropertiesResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_ResetGlobalProperties]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLResult.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLResult.h
new file mode 100644
index 000000000..f93d39fa6
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLResult.h
@@ -0,0 +1,46 @@
+// SDLResult.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLResult : SDLEnum {}
+
++(SDLResult*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLResult*) SUCCESS;
++(SDLResult*) INVALID_DATA;
++(SDLResult*) UNSUPPORTED_REQUEST;
++(SDLResult*) OUT_OF_MEMORY;
++(SDLResult*) TOO_MANY_PENDING_REQUESTS;
++(SDLResult*) INVALID_ID;
++(SDLResult*) DUPLICATE_NAME;
++(SDLResult*) TOO_MANY_APPLICATIONS;
++(SDLResult*) APPLICATION_REGISTERED_ALREADY;
++(SDLResult*) UNSUPPORTED_VERSION;
++(SDLResult*) WRONG_LANGUAGE;
++(SDLResult*) APPLICATION_NOT_REGISTERED;
++(SDLResult*) IN_USE;
++(SDLResult*) VEHICLE_DATA_NOT_ALLOWED;
++(SDLResult*) VEHICLE_DATA_NOT_AVAILABLE;
++(SDLResult*) REJECTED;
++(SDLResult*) ABORTED;
++(SDLResult*) IGNORED;
++(SDLResult*) UNSUPPORTED_RESOURCE;
++(SDLResult*) FILE_NOT_FOUND;
++(SDLResult*) GENERIC_ERROR;
++(SDLResult*) DISALLOWED;
++(SDLResult*) USER_DISALLOWED;
++(SDLResult*) TIMED_OUT;
++(SDLResult*) CANCEL_ROUTE;
++(SDLResult*) TRUNCATED_DATA;
++(SDLResult*) RETRY;
++(SDLResult*) WARNINGS;
++(SDLResult*) SAVED;
++(SDLResult*) INVALID_CERT;
++(SDLResult*) EXPIRED_CERT;
++(SDLResult*) RESUME_FAILED;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLResult.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLResult.m
new file mode 100644
index 000000000..4b655cbbf
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLResult.m
@@ -0,0 +1,317 @@
+// SDLResult.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLResult.h"
+
+SDLResult* SDLResult_SUCCESS = nil;
+SDLResult* SDLResult_INVALID_DATA = nil;
+SDLResult* SDLResult_UNSUPPORTED_REQUEST = nil;
+SDLResult* SDLResult_OUT_OF_MEMORY = nil;
+SDLResult* SDLResult_TOO_MANY_PENDING_REQUESTS = nil;
+SDLResult* SDLResult_INVALID_ID = nil;
+SDLResult* SDLResult_DUPLICATE_NAME = nil;
+SDLResult* SDLResult_TOO_MANY_APPLICATIONS = nil;
+SDLResult* SDLResult_APPLICATION_REGISTERED_ALREADY = nil;
+SDLResult* SDLResult_UNSUPPORTED_VERSION = nil;
+SDLResult* SDLResult_WRONG_LANGUAGE = nil;
+SDLResult* SDLResult_APPLICATION_NOT_REGISTERED = nil;
+SDLResult* SDLResult_IN_USE = nil;
+SDLResult* SDLResult_VEHICLE_DATA_NOT_ALLOWED = nil;
+SDLResult* SDLResult_VEHICLE_DATA_NOT_AVAILABLE = nil;
+SDLResult* SDLResult_REJECTED = nil;
+SDLResult* SDLResult_ABORTED = nil;
+SDLResult* SDLResult_IGNORED = nil;
+SDLResult* SDLResult_UNSUPPORTED_RESOURCE = nil;
+SDLResult* SDLResult_FILE_NOT_FOUND = nil;
+SDLResult* SDLResult_GENERIC_ERROR = nil;
+SDLResult* SDLResult_DISALLOWED = nil;
+SDLResult* SDLResult_USER_DISALLOWED = nil;
+SDLResult* SDLResult_TIMED_OUT = nil;
+SDLResult* SDLResult_CANCEL_ROUTE = nil;
+SDLResult* SDLResult_TRUNCATED_DATA = nil;
+SDLResult* SDLResult_RETRY = nil;
+SDLResult* SDLResult_WARNINGS = nil;
+SDLResult* SDLResult_SAVED = nil;
+SDLResult* SDLResult_INVALID_CERT = nil;
+SDLResult* SDLResult_EXPIRED_CERT = nil;
+SDLResult* SDLResult_RESUME_FAILED = nil;
+
+NSMutableArray* SDLResult_values = nil;
+
+@implementation SDLResult
+
++(SDLResult*) valueOf:(NSString*) value {
+ for (SDLResult* item in SDLResult.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLResult_values == nil) {
+ SDLResult_values = [[NSMutableArray alloc] initWithObjects:
+ SDLResult.SUCCESS,
+ SDLResult.INVALID_DATA,
+ SDLResult.UNSUPPORTED_REQUEST,
+ SDLResult.OUT_OF_MEMORY,
+ SDLResult.TOO_MANY_PENDING_REQUESTS,
+ SDLResult.INVALID_ID,
+ SDLResult.DUPLICATE_NAME,
+ SDLResult.TOO_MANY_APPLICATIONS,
+ SDLResult.APPLICATION_REGISTERED_ALREADY,
+ SDLResult.UNSUPPORTED_VERSION,
+ SDLResult.WRONG_LANGUAGE,
+ SDLResult.APPLICATION_NOT_REGISTERED,
+ SDLResult.IN_USE,
+ SDLResult.VEHICLE_DATA_NOT_ALLOWED,
+ SDLResult.VEHICLE_DATA_NOT_AVAILABLE,
+ SDLResult.REJECTED,
+ SDLResult.ABORTED,
+ SDLResult.IGNORED,
+ SDLResult.UNSUPPORTED_RESOURCE,
+ SDLResult.FILE_NOT_FOUND,
+ SDLResult.GENERIC_ERROR,
+ SDLResult.DISALLOWED,
+ SDLResult.USER_DISALLOWED,
+ SDLResult.TIMED_OUT,
+ SDLResult.CANCEL_ROUTE,
+ SDLResult.TRUNCATED_DATA,
+ SDLResult.RETRY,
+ SDLResult.WARNINGS,
+ SDLResult.SAVED,
+ SDLResult.INVALID_CERT,
+ SDLResult.EXPIRED_CERT,
+ SDLResult.RESUME_FAILED,
+ nil];
+ }
+ return SDLResult_values;
+}
+
++(SDLResult*) SUCCESS {
+ if (SDLResult_SUCCESS == nil) {
+ SDLResult_SUCCESS = [[SDLResult alloc] initWithValue:@"SUCCESS"];
+ }
+ return SDLResult_SUCCESS;
+}
+
++(SDLResult*) INVALID_DATA {
+ if (SDLResult_INVALID_DATA == nil) {
+ SDLResult_INVALID_DATA = [[SDLResult alloc] initWithValue:@"INVALID_DATA"];
+ }
+ return SDLResult_INVALID_DATA;
+}
+
++(SDLResult*) UNSUPPORTED_REQUEST {
+ if (SDLResult_UNSUPPORTED_REQUEST == nil) {
+ SDLResult_UNSUPPORTED_REQUEST = [[SDLResult alloc] initWithValue:@"UNSUPPORTED_REQUEST"];
+ }
+ return SDLResult_UNSUPPORTED_REQUEST;
+}
+
++(SDLResult*) OUT_OF_MEMORY {
+ if (SDLResult_OUT_OF_MEMORY == nil) {
+ SDLResult_OUT_OF_MEMORY = [[SDLResult alloc] initWithValue:@"OUT_OF_MEMORY"];
+ }
+ return SDLResult_OUT_OF_MEMORY;
+}
+
++(SDLResult*) TOO_MANY_PENDING_REQUESTS {
+ if (SDLResult_TOO_MANY_PENDING_REQUESTS == nil) {
+ SDLResult_TOO_MANY_PENDING_REQUESTS = [[SDLResult alloc] initWithValue:@"TOO_MANY_PENDING_REQUESTS"];
+ }
+ return SDLResult_TOO_MANY_PENDING_REQUESTS;
+}
+
++(SDLResult*) INVALID_ID {
+ if (SDLResult_INVALID_ID == nil) {
+ SDLResult_INVALID_ID = [[SDLResult alloc] initWithValue:@"INVALID_ID"];
+ }
+ return SDLResult_INVALID_ID;
+}
+
++(SDLResult*) DUPLICATE_NAME {
+ if (SDLResult_DUPLICATE_NAME == nil) {
+ SDLResult_DUPLICATE_NAME = [[SDLResult alloc] initWithValue:@"DUPLICATE_NAME"];
+ }
+ return SDLResult_DUPLICATE_NAME;
+}
+
++(SDLResult*) TOO_MANY_APPLICATIONS {
+ if (SDLResult_TOO_MANY_APPLICATIONS == nil) {
+ SDLResult_TOO_MANY_APPLICATIONS = [[SDLResult alloc] initWithValue:@"TOO_MANY_APPLICATIONS"];
+ }
+ return SDLResult_TOO_MANY_APPLICATIONS;
+}
+
++(SDLResult*) APPLICATION_REGISTERED_ALREADY {
+ if (SDLResult_APPLICATION_REGISTERED_ALREADY == nil) {
+ SDLResult_APPLICATION_REGISTERED_ALREADY = [[SDLResult alloc] initWithValue:@"APPLICATION_REGISTERED_ALREADY"];
+ }
+ return SDLResult_APPLICATION_REGISTERED_ALREADY;
+}
+
++(SDLResult*) UNSUPPORTED_VERSION {
+ if (SDLResult_UNSUPPORTED_VERSION == nil) {
+ SDLResult_UNSUPPORTED_VERSION = [[SDLResult alloc] initWithValue:@"UNSUPPORTED_VERSION"];
+ }
+ return SDLResult_UNSUPPORTED_VERSION;
+}
+
++(SDLResult*) WRONG_LANGUAGE {
+ if (SDLResult_WRONG_LANGUAGE == nil) {
+ SDLResult_WRONG_LANGUAGE = [[SDLResult alloc] initWithValue:@"WRONG_LANGUAGE"];
+ }
+ return SDLResult_WRONG_LANGUAGE;
+}
+
++(SDLResult*) APPLICATION_NOT_REGISTERED {
+ if (SDLResult_APPLICATION_NOT_REGISTERED == nil) {
+ SDLResult_APPLICATION_NOT_REGISTERED = [[SDLResult alloc] initWithValue:@"APPLICATION_NOT_REGISTERED"];
+ }
+ return SDLResult_APPLICATION_NOT_REGISTERED;
+}
+
++(SDLResult*) IN_USE {
+ if (SDLResult_IN_USE == nil) {
+ SDLResult_IN_USE = [[SDLResult alloc] initWithValue:@"IN_USE"];
+ }
+ return SDLResult_IN_USE;
+}
+
++(SDLResult*) VEHICLE_DATA_NOT_ALLOWED {
+ if (SDLResult_VEHICLE_DATA_NOT_ALLOWED == nil) {
+ SDLResult_VEHICLE_DATA_NOT_ALLOWED = [[SDLResult alloc] initWithValue:@"VEHICLE_DATA_NOT_ALLOWED"];
+ }
+ return SDLResult_VEHICLE_DATA_NOT_ALLOWED;
+}
+
++(SDLResult*) VEHICLE_DATA_NOT_AVAILABLE {
+ if (SDLResult_VEHICLE_DATA_NOT_AVAILABLE == nil) {
+ SDLResult_VEHICLE_DATA_NOT_AVAILABLE = [[SDLResult alloc] initWithValue:@"VEHICLE_DATA_NOT_AVAILABLE"];
+ }
+ return SDLResult_VEHICLE_DATA_NOT_AVAILABLE;
+}
+
++(SDLResult*) REJECTED {
+ if (SDLResult_REJECTED == nil) {
+ SDLResult_REJECTED = [[SDLResult alloc] initWithValue:@"REJECTED"];
+ }
+ return SDLResult_REJECTED;
+}
+
++(SDLResult*) ABORTED {
+ if (SDLResult_ABORTED == nil) {
+ SDLResult_ABORTED = [[SDLResult alloc] initWithValue:@"ABORTED"];
+ }
+ return SDLResult_ABORTED;
+}
+
++(SDLResult*) IGNORED {
+ if (SDLResult_IGNORED == nil) {
+ SDLResult_IGNORED = [[SDLResult alloc] initWithValue:@"IGNORED"];
+ }
+ return SDLResult_IGNORED;
+}
+
++(SDLResult*) UNSUPPORTED_RESOURCE {
+ if (SDLResult_UNSUPPORTED_RESOURCE == nil) {
+ SDLResult_UNSUPPORTED_RESOURCE = [[SDLResult alloc] initWithValue:@"UNSUPPORTED_RESOURCE"];
+ }
+ return SDLResult_UNSUPPORTED_RESOURCE;
+}
+
++(SDLResult*) FILE_NOT_FOUND {
+ if (SDLResult_FILE_NOT_FOUND == nil) {
+ SDLResult_FILE_NOT_FOUND = [[SDLResult alloc] initWithValue:@"FILE_NOT_FOUND"];
+ }
+ return SDLResult_FILE_NOT_FOUND;
+}
+
++(SDLResult*) GENERIC_ERROR {
+ if (SDLResult_GENERIC_ERROR == nil) {
+ SDLResult_GENERIC_ERROR = [[SDLResult alloc] initWithValue:@"GENERIC_ERROR"];
+ }
+ return SDLResult_GENERIC_ERROR;
+}
+
++(SDLResult*) DISALLOWED {
+ if (SDLResult_DISALLOWED == nil) {
+ SDLResult_DISALLOWED = [[SDLResult alloc] initWithValue:@"DISALLOWED"];
+ }
+ return SDLResult_DISALLOWED;
+}
+
++(SDLResult*) USER_DISALLOWED {
+ if (SDLResult_USER_DISALLOWED == nil) {
+ SDLResult_USER_DISALLOWED = [[SDLResult alloc] initWithValue:@"USER_DISALLOWED"];
+ }
+ return SDLResult_USER_DISALLOWED;
+}
+
++(SDLResult*) TIMED_OUT {
+ if (SDLResult_TIMED_OUT == nil) {
+ SDLResult_TIMED_OUT = [[SDLResult alloc] initWithValue:@"TIMED_OUT"];
+ }
+ return SDLResult_TIMED_OUT;
+}
+
++(SDLResult*) CANCEL_ROUTE {
+ if (SDLResult_CANCEL_ROUTE == nil) {
+ SDLResult_CANCEL_ROUTE = [[SDLResult alloc] initWithValue:@"CANCEL_ROUTE"];
+ }
+ return SDLResult_CANCEL_ROUTE;
+}
+
++(SDLResult*) TRUNCATED_DATA {
+ if (SDLResult_TRUNCATED_DATA == nil) {
+ SDLResult_TRUNCATED_DATA = [[SDLResult alloc] initWithValue:@"TRUNCATED_DATA"];
+ }
+ return SDLResult_TRUNCATED_DATA;
+}
+
++(SDLResult*) RETRY {
+ if (SDLResult_RETRY == nil) {
+ SDLResult_RETRY = [[SDLResult alloc] initWithValue:@"RETRY"];
+ }
+ return SDLResult_RETRY;
+}
+
++(SDLResult*) WARNINGS {
+ if (SDLResult_WARNINGS == nil) {
+ SDLResult_WARNINGS = [[SDLResult alloc] initWithValue:@"WARNINGS"];
+ }
+ return SDLResult_WARNINGS;
+}
+
++(SDLResult*) SAVED {
+ if (SDLResult_SAVED == nil) {
+ SDLResult_SAVED = [[SDLResult alloc] initWithValue:@"SAVED"];
+ }
+ return SDLResult_SAVED;
+}
+
++(SDLResult*) INVALID_CERT {
+ if (SDLResult_INVALID_CERT == nil) {
+ SDLResult_INVALID_CERT = [[SDLResult alloc] initWithValue:@"INVALID_CERT"];
+ }
+ return SDLResult_INVALID_CERT;
+}
+
++(SDLResult*) EXPIRED_CERT {
+ if (SDLResult_EXPIRED_CERT == nil) {
+ SDLResult_EXPIRED_CERT = [[SDLResult alloc] initWithValue:@"EXPIRED_CERT"];
+ }
+ return SDLResult_EXPIRED_CERT;
+}
+
++(SDLResult*) RESUME_FAILED {
+ if (SDLResult_RESUME_FAILED == nil) {
+ SDLResult_RESUME_FAILED = [[SDLResult alloc] initWithValue:@"RESUME_FAILED"];
+ }
+ return SDLResult_RESUME_FAILED;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSamplingRate.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSamplingRate.h
new file mode 100644
index 000000000..0657bbb58
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSamplingRate.h
@@ -0,0 +1,18 @@
+// SDLSamplingRate.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLSamplingRate : SDLEnum {}
+
++(SDLSamplingRate*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLSamplingRate*) _8KHZ;
++(SDLSamplingRate*) _16KHZ;
++(SDLSamplingRate*) _22KHZ;
++(SDLSamplingRate*) _44KHZ;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSamplingRate.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSamplingRate.m
new file mode 100644
index 000000000..76330b016
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSamplingRate.m
@@ -0,0 +1,65 @@
+// SDLSamplingRate.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSamplingRate.h"
+
+SDLSamplingRate* SDLSamplingRate_8KHZ = nil;
+SDLSamplingRate* SDLSamplingRate_16KHZ = nil;
+SDLSamplingRate* SDLSamplingRate_22KHZ = nil;
+SDLSamplingRate* SDLSamplingRate_44KHZ = nil;
+
+NSMutableArray* SDLSamplingRate_values = nil;
+
+@implementation SDLSamplingRate
+
++(SDLSamplingRate*) valueOf:(NSString*) value {
+ for (SDLSamplingRate* item in SDLSamplingRate.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLSamplingRate_values == nil) {
+ SDLSamplingRate_values = [[NSMutableArray alloc] initWithObjects:
+ SDLSamplingRate._8KHZ,
+ SDLSamplingRate._16KHZ,
+ SDLSamplingRate._22KHZ,
+ SDLSamplingRate._44KHZ,
+ nil];
+ }
+ return SDLSamplingRate_values;
+}
+
++(SDLSamplingRate*) _8KHZ {
+ if (SDLSamplingRate_8KHZ == nil) {
+ SDLSamplingRate_8KHZ = [[SDLSamplingRate alloc] initWithValue:@"8KHZ"];
+ }
+ return SDLSamplingRate_8KHZ;
+}
+
++(SDLSamplingRate*) _16KHZ {
+ if (SDLSamplingRate_16KHZ == nil) {
+ SDLSamplingRate_16KHZ = [[SDLSamplingRate alloc] initWithValue:@"16KHZ"];
+ }
+ return SDLSamplingRate_16KHZ;
+}
+
++(SDLSamplingRate*) _22KHZ {
+ if (SDLSamplingRate_22KHZ == nil) {
+ SDLSamplingRate_22KHZ = [[SDLSamplingRate alloc] initWithValue:@"22KHZ"];
+ }
+ return SDLSamplingRate_22KHZ;
+}
+
++(SDLSamplingRate*) _44KHZ {
+ if (SDLSamplingRate_44KHZ == nil) {
+ SDLSamplingRate_44KHZ = [[SDLSamplingRate alloc] initWithValue:@"44KHZ"];
+ }
+ return SDLSamplingRate_44KHZ;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLScreenParams.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLScreenParams.h
new file mode 100644
index 000000000..f4306da46
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLScreenParams.h
@@ -0,0 +1,19 @@
+// SDLScreenParams.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLImageResolution.h"
+#import "SDLTouchEventCapabilities.h"
+
+@interface SDLScreenParams : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLImageResolution* resolution;
+@property(strong) SDLTouchEventCapabilities* touchEventAvailable;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLScreenParams.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLScreenParams.m
new file mode 100644
index 000000000..52e2c43d4
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLScreenParams.m
@@ -0,0 +1,55 @@
+// SDLScreenParams.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLScreenParams.h"
+
+#import "SDLNames.h"
+
+@implementation SDLScreenParams
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setResolution:(SDLImageResolution*) resolution {
+ if (resolution != nil) {
+ [store setObject:resolution forKey:NAMES_resolution];
+ } else {
+ [store removeObjectForKey:NAMES_resolution];
+ }
+}
+
+-(SDLImageResolution*) resolution {
+ NSObject* obj = [store objectForKey:NAMES_resolution];
+ if ([obj isKindOfClass:SDLImageResolution.class]) {
+ return (SDLImageResolution*)obj;
+ } else {
+ return [[SDLImageResolution alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setTouchEventAvailable:(SDLTouchEventCapabilities*) touchEventAvailable {
+ if (touchEventAvailable != nil) {
+ [store setObject:touchEventAvailable forKey:NAMES_touchEventAvailable];
+ } else {
+ [store removeObjectForKey:NAMES_touchEventAvailable];
+ }
+}
+
+-(SDLTouchEventCapabilities*) touchEventAvailable {
+ NSObject* obj = [store objectForKey:NAMES_touchEventAvailable];
+ if ([obj isKindOfClass:SDLTouchEventCapabilities.class]) {
+ return (SDLTouchEventCapabilities*)obj;
+ } else {
+ return [[SDLTouchEventCapabilities alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLScrollableMessage.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLScrollableMessage.h
new file mode 100644
index 000000000..94911c85d
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLScrollableMessage.h
@@ -0,0 +1,17 @@
+// SDLScrollableMessage.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLScrollableMessage : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSString* scrollableMessageBody;
+@property(strong) NSNumber* timeout;
+@property(strong) NSMutableArray* softButtons;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLScrollableMessage.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLScrollableMessage.m
new file mode 100644
index 000000000..22c00eb7e
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLScrollableMessage.m
@@ -0,0 +1,67 @@
+// SDLScrollableMessage.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLScrollableMessage.h"
+
+#import "SDLNames.h"
+#import "SDLSoftButton.h"
+
+@implementation SDLScrollableMessage
+
+-(id) init {
+ if (self = [super initWithName:NAMES_ScrollableMessage]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setScrollableMessageBody:(NSString*) scrollableMessageBody {
+ if (scrollableMessageBody != nil) {
+ [parameters setObject:scrollableMessageBody forKey:NAMES_scrollableMessageBody];
+ } else {
+ [parameters removeObjectForKey:NAMES_scrollableMessageBody];
+ }
+}
+
+-(NSString*) scrollableMessageBody {
+ return [parameters objectForKey:NAMES_scrollableMessageBody];
+}
+
+-(void) setTimeout:(NSNumber*) timeout {
+ if (timeout != nil) {
+ [parameters setObject:timeout forKey:NAMES_timeout];
+ } else {
+ [parameters removeObjectForKey:NAMES_timeout];
+ }
+}
+
+-(NSNumber*) timeout {
+ return [parameters objectForKey:NAMES_timeout];
+}
+
+-(void) setSoftButtons:(NSMutableArray*) softButtons {
+ if (softButtons != nil) {
+ [parameters setObject:softButtons forKey:NAMES_softButtons];
+ } else {
+ [parameters removeObjectForKey:NAMES_softButtons];
+ }
+}
+
+-(NSMutableArray*) softButtons {
+ NSMutableArray* array = [parameters objectForKey:NAMES_softButtons];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLSoftButton.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLSoftButton alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLScrollableMessageResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLScrollableMessageResponse.h
new file mode 100644
index 000000000..26324dce2
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLScrollableMessageResponse.h
@@ -0,0 +1,13 @@
+// SDLScrollableMessageResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLScrollableMessageResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLScrollableMessageResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLScrollableMessageResponse.m
new file mode 100644
index 000000000..9e1555ada
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLScrollableMessageResponse.m
@@ -0,0 +1,21 @@
+// SDLScrollableMessageResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLScrollableMessageResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLScrollableMessageResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_ScrollableMessage]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetAppIcon.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetAppIcon.h
new file mode 100644
index 000000000..a23417d9c
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetAppIcon.h
@@ -0,0 +1,15 @@
+// SDLSetAppIcon.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLSetAppIcon : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSString* syncFileName;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetAppIcon.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetAppIcon.m
new file mode 100644
index 000000000..67ecb85e7
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetAppIcon.m
@@ -0,0 +1,33 @@
+// SDLSetAppIcon.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSetAppIcon.h"
+
+#import "SDLNames.h"
+
+@implementation SDLSetAppIcon
+
+-(id) init {
+ if (self = [super initWithName:NAMES_SetAppIcon]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setSyncFileName:(NSString*) syncFileName {
+ if (syncFileName != nil) {
+ [parameters setObject:syncFileName forKey:NAMES_syncFileName];
+ } else {
+ [parameters removeObjectForKey:NAMES_syncFileName];
+ }
+}
+
+-(NSString*) syncFileName {
+ return [parameters objectForKey:NAMES_syncFileName];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetAppIconResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetAppIconResponse.h
new file mode 100644
index 000000000..66a90e645
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetAppIconResponse.h
@@ -0,0 +1,13 @@
+// SDLSetAppIconResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLSetAppIconResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetAppIconResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetAppIconResponse.m
new file mode 100644
index 000000000..d73ad0d08
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetAppIconResponse.m
@@ -0,0 +1,21 @@
+// SDLSetAppIconResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSetAppIconResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLSetAppIconResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_SetAppIcon]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetDisplayLayout.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetDisplayLayout.h
new file mode 100644
index 000000000..a40943bd2
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetDisplayLayout.h
@@ -0,0 +1,15 @@
+// SDLSetDisplayLayout.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLSetDisplayLayout : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSString* displayLayout;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetDisplayLayout.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetDisplayLayout.m
new file mode 100644
index 000000000..11d5bcfcd
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetDisplayLayout.m
@@ -0,0 +1,33 @@
+// SDLSetDisplayLayout.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSetDisplayLayout.h"
+
+#import "SDLNames.h"
+
+@implementation SDLSetDisplayLayout
+
+-(id) init {
+ if (self = [super initWithName:NAMES_SetDisplayLayout]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setDisplayLayout:(NSString*) displayLayout {
+ if (displayLayout != nil) {
+ [parameters setObject:displayLayout forKey:NAMES_displayLayout];
+ } else {
+ [parameters removeObjectForKey:NAMES_displayLayout];
+ }
+}
+
+-(NSString*) displayLayout {
+ return [parameters objectForKey:NAMES_displayLayout];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetDisplayLayoutResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetDisplayLayoutResponse.h
new file mode 100644
index 000000000..4e4394222
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetDisplayLayoutResponse.h
@@ -0,0 +1,21 @@
+// SDLSetDisplayLayoutResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+#import "SDLDisplayCapabilities.h"
+#import "SDLPresetBankCapabilities.h"
+
+@interface SDLSetDisplayLayoutResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLDisplayCapabilities* displayCapabilities;
+@property(strong) NSMutableArray* buttonCapabilities;
+@property(strong) NSMutableArray* softButtonCapabilities;
+@property(strong) SDLPresetBankCapabilities* presetBankCapabilities;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetDisplayLayoutResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetDisplayLayoutResponse.m
new file mode 100644
index 000000000..db51b0c46
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetDisplayLayoutResponse.m
@@ -0,0 +1,99 @@
+// SDLSetDisplayLayoutResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSetDisplayLayoutResponse.h"
+
+#import "SDLNames.h"
+#import "SDLButtonCapabilities.h"
+#import "SDLSoftButtonCapabilities.h"
+
+@implementation SDLSetDisplayLayoutResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_SetDisplayLayout]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setDisplayCapabilities:(SDLDisplayCapabilities*) displayCapabilities {
+ if (displayCapabilities != nil) {
+ [parameters setObject:displayCapabilities forKey:NAMES_displayCapabilities];
+ } else {
+ [parameters removeObjectForKey:NAMES_displayCapabilities];
+ }
+}
+
+-(SDLDisplayCapabilities*) displayCapabilities {
+ NSObject* obj = [parameters objectForKey:NAMES_displayCapabilities];
+ if ([obj isKindOfClass:SDLDisplayCapabilities.class]) {
+ return (SDLDisplayCapabilities*)obj;
+ } else {
+ return [[SDLDisplayCapabilities alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setButtonCapabilities:(NSMutableArray*) buttonCapabilities {
+ if (buttonCapabilities != nil) {
+ [parameters setObject:buttonCapabilities forKey:NAMES_buttonCapabilities];
+ } else {
+ [parameters removeObjectForKey:NAMES_buttonCapabilities];
+ }
+}
+
+-(NSMutableArray*) buttonCapabilities {
+ NSMutableArray* array = [parameters objectForKey:NAMES_buttonCapabilities];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLButtonCapabilities.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLButtonCapabilities alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+-(void) setSoftButtonCapabilities:(NSMutableArray*) softButtonCapabilities {
+ if (softButtonCapabilities != nil) {
+ [parameters setObject:softButtonCapabilities forKey:NAMES_softButtonCapabilities];
+ } else {
+ [parameters removeObjectForKey:NAMES_softButtonCapabilities];
+ }
+}
+
+-(NSMutableArray*) softButtonCapabilities {
+ NSMutableArray* array = [parameters objectForKey:NAMES_softButtonCapabilities];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLSoftButtonCapabilities.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLSoftButtonCapabilities alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+-(void) setPresetBankCapabilities:(SDLPresetBankCapabilities*) presetBankCapabilities {
+ if (presetBankCapabilities != nil) {
+ [parameters setObject:presetBankCapabilities forKey:NAMES_presetBankCapabilities];
+ } else {
+ [parameters removeObjectForKey:NAMES_presetBankCapabilities];
+ }
+}
+
+-(SDLPresetBankCapabilities*) presetBankCapabilities {
+ NSObject* obj = [parameters objectForKey:NAMES_presetBankCapabilities];
+ if ([obj isKindOfClass:SDLPresetBankCapabilities.class]) {
+ return (SDLPresetBankCapabilities*)obj;
+ } else {
+ return [[SDLPresetBankCapabilities alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetGlobalProperties.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetGlobalProperties.h
new file mode 100644
index 000000000..f7efbf061
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetGlobalProperties.h
@@ -0,0 +1,24 @@
+// SDLSetGlobalProperties.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+#import "SDLImage.h"
+#import "SDLKeyboardProperties.h"
+
+@interface SDLSetGlobalProperties : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSMutableArray* helpPrompt;
+@property(strong) NSMutableArray* timeoutPrompt;
+@property(strong) NSString* vrHelpTitle;
+@property(strong) NSMutableArray* vrHelp;
+@property(strong) NSString* menuTitle;
+@property(strong) SDLImage* menuIcon;
+@property(strong) SDLKeyboardProperties* keyboardProperties;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetGlobalProperties.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetGlobalProperties.m
new file mode 100644
index 000000000..b9bc4ce44
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetGlobalProperties.m
@@ -0,0 +1,144 @@
+// SDLSetGlobalProperties.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSetGlobalProperties.h"
+
+#import "SDLNames.h"
+#import "SDLTTSChunk.h"
+#import "SDLVrHelpItem.h"
+
+@implementation SDLSetGlobalProperties
+
+-(id) init {
+ if (self = [super initWithName:NAMES_SetGlobalProperties]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setHelpPrompt:(NSMutableArray*) helpPrompt {
+ if (helpPrompt != nil) {
+ [parameters setObject:helpPrompt forKey:NAMES_helpPrompt];
+ } else {
+ [parameters removeObjectForKey:NAMES_helpPrompt];
+ }
+}
+
+-(NSMutableArray*) helpPrompt {
+ NSMutableArray* array = [parameters objectForKey:NAMES_helpPrompt];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLTTSChunk.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLTTSChunk alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+-(void) setTimeoutPrompt:(NSMutableArray*) timeoutPrompt {
+ if (timeoutPrompt != nil) {
+ [parameters setObject:timeoutPrompt forKey:NAMES_timeoutPrompt];
+ } else {
+ [parameters removeObjectForKey:NAMES_timeoutPrompt];
+ }
+}
+
+-(NSMutableArray*) timeoutPrompt {
+ NSMutableArray* array = [parameters objectForKey:NAMES_timeoutPrompt];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLTTSChunk.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLTTSChunk alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+-(void) setVrHelpTitle:(NSString*) vrHelpTitle {
+ if (vrHelpTitle != nil) {
+ [parameters setObject:vrHelpTitle forKey:NAMES_vrHelpTitle];
+ } else {
+ [parameters removeObjectForKey:NAMES_vrHelpTitle];
+ }
+}
+
+-(NSString*) vrHelpTitle {
+ return [parameters objectForKey:NAMES_vrHelpTitle];
+}
+
+-(void) setVrHelp:(NSMutableArray*) vrHelp {
+ if (vrHelp != nil) {
+ [parameters setObject:vrHelp forKey:NAMES_vrHelp];
+ } else {
+ [parameters removeObjectForKey:NAMES_vrHelp];
+ }
+}
+
+-(NSMutableArray*) vrHelp {
+ NSMutableArray* array = [parameters objectForKey:NAMES_vrHelp];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLVrHelpItem.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLVrHelpItem alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+-(void) setMenuTitle:(NSString*) menuTitle {
+ if (menuTitle != nil) {
+ [parameters setObject:menuTitle forKey:NAMES_menuTitle];
+ } else {
+ [parameters removeObjectForKey:NAMES_menuTitle];
+ }
+}
+
+-(NSString*) menuTitle {
+ return [parameters objectForKey:NAMES_menuTitle];
+}
+
+-(void) setMenuIcon:(SDLImage*) menuIcon {
+ if (menuIcon != nil) {
+ [parameters setObject:menuIcon forKey:NAMES_menuIcon];
+ } else {
+ [parameters removeObjectForKey:NAMES_menuIcon];
+ }
+}
+
+-(SDLImage*) menuIcon {
+ NSObject* obj = [parameters objectForKey:NAMES_menuIcon];
+ if ([obj isKindOfClass:SDLImage.class]) {
+ return (SDLImage*)obj;
+ } else {
+ return [[SDLImage alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setKeyboardProperties:(SDLKeyboardProperties*) keyboardProperties {
+ if (keyboardProperties != nil) {
+ [parameters setObject:keyboardProperties forKey:NAMES_keyboardProperties];
+ } else {
+ [parameters removeObjectForKey:NAMES_keyboardProperties];
+ }
+}
+
+-(SDLKeyboardProperties*) keyboardProperties {
+ NSObject* obj = [parameters objectForKey:NAMES_keyboardProperties];
+ if ([obj isKindOfClass:SDLKeyboardProperties.class]) {
+ return (SDLKeyboardProperties*)obj;
+ } else {
+ return [[SDLKeyboardProperties alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetGlobalPropertiesResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetGlobalPropertiesResponse.h
new file mode 100644
index 000000000..ea7b60e14
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetGlobalPropertiesResponse.h
@@ -0,0 +1,13 @@
+// SDLSetGlobalPropertiesResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLSetGlobalPropertiesResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetGlobalPropertiesResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetGlobalPropertiesResponse.m
new file mode 100644
index 000000000..f3040a95b
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetGlobalPropertiesResponse.m
@@ -0,0 +1,21 @@
+// SDLSetGlobalPropertiesResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSetGlobalPropertiesResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLSetGlobalPropertiesResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_SetGlobalProperties]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetMediaClockTimer.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetMediaClockTimer.h
new file mode 100644
index 000000000..933599540
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetMediaClockTimer.h
@@ -0,0 +1,20 @@
+// SDLSetMediaClockTimer.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+#import "SDLStartTime.h"
+#import "SDLUpdateMode.h"
+
+@interface SDLSetMediaClockTimer : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLStartTime* startTime;
+@property(strong) SDLStartTime* endTime;
+@property(strong) SDLUpdateMode* updateMode;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetMediaClockTimer.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetMediaClockTimer.m
new file mode 100644
index 000000000..5bcfac94b
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetMediaClockTimer.m
@@ -0,0 +1,72 @@
+// SDLSetMediaClockTimer.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSetMediaClockTimer.h"
+
+#import "SDLNames.h"
+
+@implementation SDLSetMediaClockTimer
+
+-(id) init {
+ if (self = [super initWithName:NAMES_SetMediaClockTimer]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setStartTime:(SDLStartTime*) startTime {
+ if (startTime != nil) {
+ [parameters setObject:startTime forKey:NAMES_startTime];
+ } else {
+ [parameters removeObjectForKey:NAMES_startTime];
+ }
+}
+
+-(SDLStartTime*) startTime {
+ NSObject* obj = [parameters objectForKey:NAMES_startTime];
+ if ([obj isKindOfClass:SDLStartTime.class]) {
+ return (SDLStartTime*)obj;
+ } else {
+ return [[SDLStartTime alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setEndTime:(SDLStartTime*) endTime {
+ if (endTime != nil) {
+ [parameters setObject:endTime forKey:NAMES_endTime];
+ } else {
+ [parameters removeObjectForKey:NAMES_endTime];
+ }
+}
+
+-(SDLStartTime*) endTime {
+ NSObject* obj = [parameters objectForKey:NAMES_endTime];
+ if ([obj isKindOfClass:SDLStartTime.class]) {
+ return (SDLStartTime*)obj;
+ } else {
+ return [[SDLStartTime alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setUpdateMode:(SDLUpdateMode*) updateMode {
+ if (updateMode != nil) {
+ [parameters setObject:updateMode forKey:NAMES_updateMode];
+ } else {
+ [parameters removeObjectForKey:NAMES_updateMode];
+ }
+}
+
+-(SDLUpdateMode*) updateMode {
+ NSObject* obj = [parameters objectForKey:NAMES_updateMode];
+ if ([obj isKindOfClass:SDLUpdateMode.class]) {
+ return (SDLUpdateMode*)obj;
+ } else {
+ return [SDLUpdateMode valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetMediaClockTimerResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetMediaClockTimerResponse.h
new file mode 100644
index 000000000..8471d7123
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetMediaClockTimerResponse.h
@@ -0,0 +1,13 @@
+// SDLSetMediaClockTimerResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLSetMediaClockTimerResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetMediaClockTimerResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetMediaClockTimerResponse.m
new file mode 100644
index 000000000..1f7076312
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSetMediaClockTimerResponse.m
@@ -0,0 +1,21 @@
+// SDLSetMediaClockTimerResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSetMediaClockTimerResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLSetMediaClockTimerResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_SetMediaClockTimer]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLShow.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLShow.h
new file mode 100644
index 000000000..7e0aaff66
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLShow.h
@@ -0,0 +1,29 @@
+// SDLShow.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+#import "SDLTextAlignment.h"
+#import "SDLImage.h"
+
+@interface SDLShow : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSString* mainField1;
+@property(strong) NSString* mainField2;
+@property(strong) NSString* mainField3;
+@property(strong) NSString* mainField4;
+@property(strong) SDLTextAlignment* alignment;
+@property(strong) NSString* statusBar;
+@property(strong) NSString* mediaClock;
+@property(strong) NSString* mediaTrack;
+@property(strong) SDLImage* graphic;
+@property(strong) SDLImage* secondaryGraphic;
+@property(strong) NSMutableArray* softButtons;
+@property(strong) NSMutableArray* customPresets;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLShow.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLShow.m
new file mode 100644
index 000000000..50e8f30d4
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLShow.m
@@ -0,0 +1,190 @@
+// SDLShow.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLShow.h"
+
+#import "SDLNames.h"
+#import "SDLSoftButton.h"
+
+@implementation SDLShow
+
+-(id) init {
+ if (self = [super initWithName:NAMES_Show]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setMainField1:(NSString*) mainField1 {
+ if (mainField1 != nil) {
+ [parameters setObject:mainField1 forKey:NAMES_mainField1];
+ } else {
+ [parameters removeObjectForKey:NAMES_mainField1];
+ }
+}
+
+-(NSString*) mainField1 {
+ return [parameters objectForKey:NAMES_mainField1];
+}
+
+-(void) setMainField2:(NSString*) mainField2 {
+ if (mainField2 != nil) {
+ [parameters setObject:mainField2 forKey:NAMES_mainField2];
+ } else {
+ [parameters removeObjectForKey:NAMES_mainField2];
+ }
+}
+
+-(NSString*) mainField2 {
+ return [parameters objectForKey:NAMES_mainField2];
+}
+
+-(void) setMainField3:(NSString*) mainField3 {
+ if (mainField3 != nil) {
+ [parameters setObject:mainField3 forKey:NAMES_mainField3];
+ } else {
+ [parameters removeObjectForKey:NAMES_mainField3];
+ }
+}
+
+-(NSString*) mainField3 {
+ return [parameters objectForKey:NAMES_mainField3];
+}
+
+-(void) setMainField4:(NSString*) mainField4 {
+ if (mainField4 != nil) {
+ [parameters setObject:mainField4 forKey:NAMES_mainField4];
+ } else {
+ [parameters removeObjectForKey:NAMES_mainField4];
+ }
+}
+
+-(NSString*) mainField4 {
+ return [parameters objectForKey:NAMES_mainField4];
+}
+
+-(void) setAlignment:(SDLTextAlignment*) alignment {
+ if (alignment != nil) {
+ [parameters setObject:alignment forKey:NAMES_alignment];
+ } else {
+ [parameters removeObjectForKey:NAMES_alignment];
+ }
+}
+
+-(SDLTextAlignment*) alignment {
+ NSObject* obj = [parameters objectForKey:NAMES_alignment];
+ if ([obj isKindOfClass:SDLTextAlignment.class]) {
+ return (SDLTextAlignment*)obj;
+ } else {
+ return [SDLTextAlignment valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setStatusBar:(NSString*) statusBar {
+ if (statusBar != nil) {
+ [parameters setObject:statusBar forKey:NAMES_statusBar];
+ } else {
+ [parameters removeObjectForKey:NAMES_statusBar];
+ }
+}
+
+-(NSString*) statusBar {
+ return [parameters objectForKey:NAMES_statusBar];
+}
+
+-(void) setMediaClock:(NSString*) mediaClock {
+ if (mediaClock != nil) {
+ [parameters setObject:mediaClock forKey:NAMES_mediaClock];
+ } else {
+ [parameters removeObjectForKey:NAMES_mediaClock];
+ }
+}
+
+-(NSString*) mediaClock {
+ return [parameters objectForKey:NAMES_mediaClock];
+}
+
+-(void) setMediaTrack:(NSString*) mediaTrack {
+ if (mediaTrack != nil) {
+ [parameters setObject:mediaTrack forKey:NAMES_mediaTrack];
+ } else {
+ [parameters removeObjectForKey:NAMES_mediaTrack];
+ }
+}
+
+-(NSString*) mediaTrack {
+ return [parameters objectForKey:NAMES_mediaTrack];
+}
+
+-(void) setGraphic:(SDLImage*) graphic {
+ if (graphic != nil) {
+ [parameters setObject:graphic forKey:NAMES_graphic];
+ } else {
+ [parameters removeObjectForKey:NAMES_graphic];
+ }
+}
+
+-(SDLImage*) graphic {
+ NSObject* obj = [parameters objectForKey:NAMES_graphic];
+ if ([obj isKindOfClass:SDLImage.class]) {
+ return (SDLImage*)obj;
+ } else {
+ return [[SDLImage alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setSecondaryGraphic:(SDLImage*) secondaryGraphic {
+ if (secondaryGraphic != nil) {
+ [parameters setObject:secondaryGraphic forKey:NAMES_secondaryGraphic];
+ } else {
+ [parameters removeObjectForKey:NAMES_secondaryGraphic];
+ }
+}
+
+-(SDLImage*) secondaryGraphic {
+ NSObject* obj = [parameters objectForKey:NAMES_secondaryGraphic];
+ if ([obj isKindOfClass:SDLImage.class]) {
+ return (SDLImage*)obj;
+ } else {
+ return [[SDLImage alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setSoftButtons:(NSMutableArray*) softButtons {
+ if (softButtons != nil) {
+ [parameters setObject:softButtons forKey:NAMES_softButtons];
+ } else {
+ [parameters removeObjectForKey:NAMES_softButtons];
+ }
+}
+
+-(NSMutableArray*) softButtons {
+ NSMutableArray* array = [parameters objectForKey:NAMES_softButtons];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLSoftButton.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLSoftButton alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+-(void) setCustomPresets:(NSMutableArray*) customPresets {
+ if (customPresets != nil) {
+ [parameters setObject:customPresets forKey:NAMES_customPresets];
+ } else {
+ [parameters removeObjectForKey:NAMES_customPresets];
+ }
+}
+
+-(NSMutableArray*) customPresets {
+ return [parameters objectForKey:NAMES_customPresets];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLShowConstantTBT.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLShowConstantTBT.h
new file mode 100644
index 000000000..f506bf904
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLShowConstantTBT.h
@@ -0,0 +1,27 @@
+// SDLShowConstantTBT.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+#import "SDLImage.h"
+
+@interface SDLShowConstantTBT : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSString* navigationText1;
+@property(strong) NSString* navigationText2;
+@property(strong) NSString* eta;
+@property(strong) NSString* timeToDestination;
+@property(strong) NSString* totalDistance;
+@property(strong) SDLImage* turnIcon;
+@property(strong) SDLImage* nextTurnIcon;
+@property(strong) NSNumber* distanceToManeuver;
+@property(strong) NSNumber* distanceToManeuverScale;
+@property(strong) NSNumber* maneuverComplete;
+@property(strong) NSMutableArray* softButtons;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLShowConstantTBT.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLShowConstantTBT.m
new file mode 100644
index 000000000..a39e98180
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLShowConstantTBT.m
@@ -0,0 +1,173 @@
+// SDLShowConstantTBT.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLShowConstantTBT.h"
+
+#import "SDLNames.h"
+#import "SDLSoftButton.h"
+
+@implementation SDLShowConstantTBT
+
+-(id) init {
+ if (self = [super initWithName:NAMES_ShowConstantTBT]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setNavigationText1:(NSString*) navigationText1 {
+ if (navigationText1 != nil) {
+ [parameters setObject:navigationText1 forKey:NAMES_navigationText1];
+ } else {
+ [parameters removeObjectForKey:NAMES_navigationText1];
+ }
+}
+
+-(NSString*) navigationText1 {
+ return [parameters objectForKey:NAMES_navigationText1];
+}
+
+-(void) setNavigationText2:(NSString*) navigationText2 {
+ if (navigationText2 != nil) {
+ [parameters setObject:navigationText2 forKey:NAMES_navigationText2];
+ } else {
+ [parameters removeObjectForKey:NAMES_navigationText2];
+ }
+}
+
+-(NSString*) navigationText2 {
+ return [parameters objectForKey:NAMES_navigationText2];
+}
+
+-(void) setEta:(NSString*) eta {
+ if (eta != nil) {
+ [parameters setObject:eta forKey:NAMES_eta];
+ } else {
+ [parameters removeObjectForKey:NAMES_eta];
+ }
+}
+
+-(NSString*) eta {
+ return [parameters objectForKey:NAMES_eta];
+}
+
+-(void) setTimeToDestination:(NSString*) timeToDestination {
+ if (timeToDestination != nil) {
+ [parameters setObject:timeToDestination forKey:NAMES_timeToDestination];
+ } else {
+ [parameters removeObjectForKey:NAMES_timeToDestination];
+ }
+}
+
+-(NSString*) timeToDestination {
+ return [parameters objectForKey:NAMES_timeToDestination];
+}
+
+-(void) setTotalDistance:(NSString*) totalDistance {
+ if (totalDistance != nil) {
+ [parameters setObject:totalDistance forKey:NAMES_totalDistance];
+ } else {
+ [parameters removeObjectForKey:NAMES_totalDistance];
+ }
+}
+
+-(NSString*) totalDistance {
+ return [parameters objectForKey:NAMES_totalDistance];
+}
+
+-(void) setTurnIcon:(SDLImage*) turnIcon {
+ if (turnIcon != nil) {
+ [parameters setObject:turnIcon forKey:NAMES_turnIcon];
+ } else {
+ [parameters removeObjectForKey:NAMES_turnIcon];
+ }
+}
+
+-(SDLImage*) turnIcon {
+ NSObject* obj = [parameters objectForKey:NAMES_turnIcon];
+ if ([obj isKindOfClass:SDLImage.class]) {
+ return (SDLImage*)obj;
+ } else {
+ return [[SDLImage alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setNextTurnIcon:(SDLImage*) nextTurnIcon {
+ if (nextTurnIcon != nil) {
+ [parameters setObject:nextTurnIcon forKey:NAMES_nextTurnIcon];
+ } else {
+ [parameters removeObjectForKey:NAMES_nextTurnIcon];
+ }
+}
+
+-(SDLImage*) nextTurnIcon {
+ NSObject* obj = [parameters objectForKey:NAMES_nextTurnIcon];
+ if ([obj isKindOfClass:SDLImage.class]) {
+ return (SDLImage*)obj;
+ } else {
+ return [[SDLImage alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setDistanceToManeuver:(NSNumber*) distanceToManeuver {
+ if (distanceToManeuver != nil) {
+ [parameters setObject:distanceToManeuver forKey:NAMES_distanceToManeuver];
+ } else {
+ [parameters removeObjectForKey:NAMES_distanceToManeuver];
+ }
+}
+
+-(NSNumber*) distanceToManeuver {
+ return [parameters objectForKey:NAMES_distanceToManeuver];
+}
+
+-(void) setDistanceToManeuverScale:(NSNumber*) distanceToManeuverScale {
+ if (distanceToManeuverScale != nil) {
+ [parameters setObject:distanceToManeuverScale forKey:NAMES_distanceToManeuverScale];
+ } else {
+ [parameters removeObjectForKey:NAMES_distanceToManeuverScale];
+ }
+}
+
+-(NSNumber*) distanceToManeuverScale {
+ return [parameters objectForKey:NAMES_distanceToManeuverScale];
+}
+
+-(void) setManeuverComplete:(NSNumber*) maneuverComplete {
+ if (maneuverComplete != nil) {
+ [parameters setObject:maneuverComplete forKey:NAMES_maneuverComplete];
+ } else {
+ [parameters removeObjectForKey:NAMES_maneuverComplete];
+ }
+}
+
+-(NSNumber*) maneuverComplete {
+ return [parameters objectForKey:NAMES_maneuverComplete];
+}
+
+-(void) setSoftButtons:(NSMutableArray*) softButtons {
+ if (softButtons != nil) {
+ [parameters setObject:softButtons forKey:NAMES_softButtons];
+ } else {
+ [parameters removeObjectForKey:NAMES_softButtons];
+ }
+}
+
+-(NSMutableArray*) softButtons {
+ NSMutableArray* array = [parameters objectForKey:NAMES_softButtons];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLSoftButton.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLSoftButton alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLShowConstantTBTResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLShowConstantTBTResponse.h
new file mode 100644
index 000000000..3f7532bf5
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLShowConstantTBTResponse.h
@@ -0,0 +1,13 @@
+// SDLShowConstantTBTResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLShowConstantTBTResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLShowConstantTBTResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLShowConstantTBTResponse.m
new file mode 100644
index 000000000..f51b53348
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLShowConstantTBTResponse.m
@@ -0,0 +1,21 @@
+// SDLShowConstantTBTResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLShowConstantTBTResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLShowConstantTBTResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_ShowConstantTBT]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLShowResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLShowResponse.h
new file mode 100644
index 000000000..49f1e97da
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLShowResponse.h
@@ -0,0 +1,13 @@
+// SDLShowResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLShowResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLShowResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLShowResponse.m
new file mode 100644
index 000000000..a78668238
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLShowResponse.m
@@ -0,0 +1,21 @@
+// SDLShowResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLShowResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLShowResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_Show]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSingleTireStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSingleTireStatus.h
new file mode 100644
index 000000000..d7b2100b6
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSingleTireStatus.h
@@ -0,0 +1,17 @@
+// SDLSingleTireStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLComponentVolumeStatus.h"
+
+@interface SDLSingleTireStatus : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLComponentVolumeStatus* status;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSingleTireStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSingleTireStatus.m
new file mode 100644
index 000000000..092d4b611
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSingleTireStatus.m
@@ -0,0 +1,38 @@
+// SDLSingleTireStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSingleTireStatus.h"
+
+#import "SDLNames.h"
+
+@implementation SDLSingleTireStatus
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setStatus:(SDLComponentVolumeStatus*) status {
+ if (status != nil) {
+ [store setObject:status forKey:NAMES_status];
+ } else {
+ [store removeObjectForKey:NAMES_status];
+ }
+}
+
+-(SDLComponentVolumeStatus*) status {
+ NSObject* obj = [store objectForKey:NAMES_status];
+ if ([obj isKindOfClass:SDLComponentVolumeStatus.class]) {
+ return (SDLComponentVolumeStatus*)obj;
+ } else {
+ return [SDLComponentVolumeStatus valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSiphonServer.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSiphonServer.h
new file mode 100644
index 000000000..e03b663ee
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSiphonServer.h
@@ -0,0 +1,19 @@
+// SDLSiphonServer.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+@import Foundation;
+
+@interface SDLSiphonServer : NSObject <NSStreamDelegate,NSNetServiceDelegate> {}
+
++ (void)enableSiphonDebug;
++ (void)disableSiphonDebug;
++ (bool)_siphonRawTransportDataFromApp:(const void*) msgBytes msgBytesLength:(int) msgBytesLength;
++ (bool)_siphonRawTransportDataFromSDL:(const void*) msgBytes msgBytesLength:(int) msgBytesLength;
++ (bool)_siphonNSLogData:(NSString *) textToLog;
++ (bool)_siphonFormattedTraceData:(NSString*) traceData;
++ (bool)_siphonIsActive;
++ (void)init;
++ (void)dealloc;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSiphonServer.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSiphonServer.m
new file mode 100644
index 000000000..18fff4b58
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSiphonServer.m
@@ -0,0 +1,466 @@
+// SDLSiphonServer.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+/*******************************
+ * Description:
+ * This class opens a socket on port 7474.
+ * The 'sendSiphonData' Function will
+ * write to the socket that the SDL Relay Sniffer is
+ * listening on.
+ ******************************/
+
+//#define ZERO_CONFIG //Uncomment when implementing zero-config.
+//#define DEBUG_SIPHON //Uncomment to have output to NSLog.
+
+#import "SDLSiphonServer.h"
+#include <CFNetwork/CFNetwork.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <sys/types.h>
+#include <string.h>
+#include <unistd.h>
+#import "SDLDebugTool.h"
+
+typedef enum {
+ fromApp = 0x01
+ ,fromSDL = 0x00
+ ,appLog = 0x02
+ ,formattedTrace = 0x03
+} SiphonDataType;
+
+const Byte siphonMsgVersionNumber = 1;
+volatile int siphonSocket = 0;
+NSObject* siphonLock = nil;
+CFSocketRef _listeningSocket;
+NSNetService *netService = nil;
+volatile bool initStarted = false;
+bool siphonServerEnabled = false;
+bool sendingFormattedTrace = false;
+NSDate* startTimeStamp;
+int FIRST_PORT_TO_ATTEMPT_CONNECTION = 7474;
+
+void _closeSiphonSocket();
+bool _sendDataToSiphonSocket(int soc, const void* pData, int dataLength);
+bool _sendSiphonData(const void* dataBytes, int dataBytesLength, SiphonDataType siphonDataType);
+void _startServerOnPort(int port);
+void _stopServer(NSString *reason);
+
+@implementation SDLSiphonServer
+
+// Model currently counts on init being called before any apps call _siphonNSLogData()
+// The following is not thread safe (i.e. two threads could create siphon lock),
+// but will assume for now that we won't have two transports created in the same proxy.
++ (void)init {
+
+ if (initStarted) {
+ return;
+ } // end-if
+
+ if(!siphonLock){
+ siphonLock = [NSData alloc];
+ } // end-if
+
+ @synchronized(siphonLock) {
+ if (initStarted) {
+ return;
+ }
+
+ initStarted = true;
+
+ startTimeStamp = [NSDate date];
+
+ _closeSiphonSocket();
+
+ _startServerOnPort(FIRST_PORT_TO_ATTEMPT_CONNECTION);
+ }
+}
+
++ (void)enableSiphonDebug {
+ siphonServerEnabled = true;
+}
+
++ (void)disableSiphonDebug {
+ siphonServerEnabled = false;
+}
+
+void _closeSiphonSocket() {
+#ifdef DEBUG_SIPHON
+ NSLog(@"siphon: Resetting siphon socket ...");
+#endif
+ if (siphonLock) {
+ @synchronized(siphonLock) {
+ if (siphonSocket) {
+ close(siphonSocket);
+ siphonSocket = 0;
+ } // end-if
+ } // end-lock
+ } // end-if
+#ifdef DEBUG_SIPHON
+ NSLog(@"siphon: siphon socket reset complete");
+#endif
+} // end-method
+
++ (void)dealloc {
+#ifdef ZERO_CONFIG
+ _stopServer(@"Shutting Down");
+#endif
+
+}
+
++ (bool)_siphonIsActive {
+ if(siphonSocket == 0) {
+ return NO;
+ }
+ return YES;
+}
+
+
++ (bool)_siphonFormattedTraceData:(NSString*) traceData {
+ if((traceData == NULL) || (traceData.length == 0)) {
+ return NO;
+ } // end-if
+
+ NSData * traceBytes = [traceData dataUsingEncoding:NSUTF8StringEncoding];
+
+ if(traceBytes == nil) {
+ return NO;
+ } // end-if
+
+ bool dataSent = NO;
+
+ sendingFormattedTrace = true;
+
+ dataSent = _sendSiphonData(traceBytes.bytes, (int)traceBytes.length, formattedTrace);
+
+ return dataSent;
+} // end-method
+
++ (bool)_siphonNSLogData:(NSString *) textToLog {
+ if((textToLog == NULL) || (textToLog.length == 0)) {
+ return NO;
+ } // end-if
+
+ NSData * textBytes = [textToLog dataUsingEncoding:NSUTF8StringEncoding];
+
+ if(textBytes == nil) {
+ return NO;
+ } // end-if
+
+ bool dataSent = NO;
+
+ dataSent = _sendSiphonData(textBytes.bytes, (int)textBytes.length, appLog);
+
+ return dataSent;
+} // end-method
+
++ (bool)_siphonRawTransportDataFromApp:(const void*) msgBytes msgBytesLength:(int) msgBytesLength {
+ if (sendingFormattedTrace) {
+ return false;
+ } // end-if
+
+ if (msgBytes == NULL || msgBytesLength == 0) {
+ return false;
+ } // end-if
+
+ return _sendSiphonData(msgBytes, msgBytesLength, fromApp);
+}
+
++ (bool)_siphonRawTransportDataFromSDL:(const void*) msgBytes msgBytesLength:(int) msgBytesLength {
+ if (sendingFormattedTrace) {
+ return false;
+ } // end-if
+
+ if (msgBytes == NULL || msgBytesLength == 0) {
+ return false;
+ } // end-if
+
+ return _sendSiphonData(msgBytes, msgBytesLength, fromSDL);
+}
+
+bool
+_sendSiphonData(const void* dataBytes, int dataBytesLength, SiphonDataType siphonDataType) {
+
+ bool wasSent = NO;
+
+ if (dataBytes == NULL || dataBytesLength == 0 || !siphonServerEnabled) {
+ return false;
+ } // end-if
+
+ NSDate *currentTime = [NSDate date];
+ NSTimeInterval deltaTimeMillis = ([currentTime timeIntervalSinceDate:startTimeStamp] * 1000.0);
+ uint32_t integerDeltaTimeMillis = ((uint32_t)deltaTimeMillis);
+
+ integerDeltaTimeMillis = htonl(integerDeltaTimeMillis);
+
+ if (siphonLock) {
+
+ @synchronized(siphonLock) {
+
+ if(siphonSocket) {
+
+ Byte sdt = (Byte)siphonDataType;
+ sdt = (Byte)0x80 | sdt;
+ uint32_t sizeBytes = htonl(dataBytesLength + sizeof(sdt) + sizeof(integerDeltaTimeMillis) + sizeof(siphonMsgVersionNumber));
+
+ wasSent = _sendDataToSiphonSocket(siphonSocket, &sizeBytes, sizeof(sizeBytes));
+
+ if(wasSent) {
+ wasSent = _sendDataToSiphonSocket(siphonSocket, &sdt, sizeof(sdt));
+ }
+
+ if(wasSent) {
+ wasSent = _sendDataToSiphonSocket(siphonSocket, &siphonMsgVersionNumber, sizeof(siphonMsgVersionNumber));
+ }
+
+ if(wasSent) {
+ wasSent = _sendDataToSiphonSocket(siphonSocket, &integerDeltaTimeMillis, sizeof(integerDeltaTimeMillis));
+ }
+
+ if(wasSent) {
+ wasSent = _sendDataToSiphonSocket(siphonSocket, dataBytes, dataBytesLength);
+ }
+
+ if(wasSent) {
+ return YES;
+ } else {
+#ifdef DEBUG_SIPHON
+ NSLog(@"siphon: failure sending to siphon socket");
+#endif
+ _closeSiphonSocket();
+ return NO;
+ } // end-if
+ } else {
+#ifdef DEBUG_SIPHON
+ NSLog(@"siphon: siphon socket is NULL");
+#endif
+ } // end-if
+ } //end Synchronized
+ } // end-if
+ return NO;
+
+} // end-method
+
+bool _sendDataToSiphonSocket(int soc, const void* pData, int dataLength) {
+
+ int bytesRemainingToSend = dataLength;
+ ssize_t bytesSent = 0;
+ const UInt8 *pd = pData;
+
+ if (pData == NULL || dataLength == 0) {
+ return false;
+ } // end-if
+
+ while (bytesRemainingToSend > 0) {
+ if (soc) {
+
+ bytesSent = send(soc, pd, bytesRemainingToSend, 0);
+
+ if(bytesSent == -1) {
+#ifdef DEBUG_SIPHON
+ NSLog(@"siphon: got bytesSent==-1 on send(siphonSocket)");
+#endif
+ return NO;
+ } // end-if
+
+ bytesRemainingToSend -= bytesSent;
+ pd += bytesSent;
+ } // end-if
+
+ } // end-while
+
+ return YES;
+
+} // end-method
+
+
+void _serverDidStartOnPort(int port) {
+#ifdef DEBUG_SIPHON
+ NSLog(@"siphon: server started on port: %d",port);
+#endif
+}
+
+#ifdef ZERO_CONFIG
+
+#pragma mark
+#pragma mark Server
+
+- (void)_didSendData:(NSData *)data {}
+
+void _serverDidStopWithReason(NSString * reason) {}
+
+- (void)_updateStatus:(NSString *)statusString{
+ NSLog(@"siphon: %@",statusString);
+}
+
+- (void)_SendDidStopWithStatus:(NSString *)statusString{
+ NSLog(@"siphon: server configured for output");
+}
+
+- (BOOL)isStarted {
+ return (netService != nil);
+}
+#endif
+
+
+void _acceptConnection(int fd) {
+ if (siphonLock) {
+ @synchronized(siphonLock){
+
+ int socketOps = 1;
+
+ _closeSiphonSocket();
+#ifdef DEBUG_SIPHON
+ NSLog(@"siphon: storing newly accepted siphon socket handle %08x ...", fd);
+#endif
+ siphonSocket = fd;
+
+ setsockopt(siphonSocket, SOL_SOCKET, SO_NOSIGPIPE, (void *)&socketOps, sizeof(int));
+ [SDLDebugTool logInfo:@"Siphon connected." withType:SDLDebugType_Debug];
+
+ } // end-lock
+ } // end-if
+ return;
+
+}
+
+static void AcceptCallback(CFSocketRef s, CFSocketCallBackType type, CFDataRef address, const void *data, void *info) {
+#ifdef DEBUG_SIPHON
+ NSLog(@"siphon: accepted siphon connection ...");
+#endif
+
+#pragma unused(type)
+ assert(type == kCFSocketAcceptCallBack);
+#pragma unused(address)
+ assert(data != NULL);
+
+#pragma unused(s)
+ assert(s == _listeningSocket);
+
+ _acceptConnection(*(int*)data);
+}
+
+
+#ifdef ZERO_CONFIG
+- (void)netService:(NSNetService *)sender didNotPublish:(NSDictionary *)errorDict {
+#pragma unused(sender)
+ assert(sender == netService);
+#pragma unused(errorDict)
+
+ _stopServer(@"Registration failed");
+}
+#endif
+
+void _startServerOnPort(int port) {
+ BOOL success;
+ int err;
+ int fd;
+ struct sockaddr_in addr;
+ int const retryLimit = 1000;
+
+ fd = socket(AF_INET, SOCK_STREAM, 0);
+ success = (fd != -1);
+
+ if (success) {
+ memset(&addr, 0, sizeof(addr));
+ addr.sin_len = sizeof(addr);
+ addr.sin_family = AF_INET;
+
+ addr.sin_addr.s_addr = INADDR_ANY;
+
+ bool openPortFound = false;
+ short bindPort = (short)port;
+ success = false;
+ for (int retryCount = 0; retryCount < retryLimit && !openPortFound; retryCount++) {
+ addr.sin_port = htons(bindPort);
+ err = bind(fd, (const struct sockaddr *) &addr, sizeof(addr));
+ if (err == 0) {
+ openPortFound = true;
+ success = (err == 0);
+ port = bindPort;
+ } else {
+ bindPort++;
+ }
+ } // end-for
+ }
+ if (success) {
+ err = listen(fd, 5);
+ success = (err == 0);
+ }
+ if (success) {
+ socklen_t addrLen;
+
+ addrLen = sizeof(addr);
+ err = getsockname(fd, (struct sockaddr *) &addr, &addrLen);
+ success = (err == 0);
+
+ if (success) {
+ assert(addrLen == sizeof(addr));
+ port = ntohs(addr.sin_port);
+
+ }
+#ifdef DEBUG_SIPHON
+ NSLog(@"siphon: my port is %d ",port);
+#endif
+
+ }
+ if (success) {
+
+ _listeningSocket = CFSocketCreateWithNative(
+ NULL,
+ fd,
+ kCFSocketAcceptCallBack,
+ AcceptCallback,
+ NULL
+ );
+ success = (_listeningSocket != NULL);
+
+ if (success) {
+ CFRunLoopSourceRef rls;
+ fd = -1;
+ rls = CFSocketCreateRunLoopSource(NULL, _listeningSocket, 0);
+ assert(rls != NULL);
+ CFRunLoopAddSource(CFRunLoopGetCurrent(), rls, kCFRunLoopDefaultMode);
+ CFRelease(rls);
+ }
+ }
+
+#ifdef ZERO_CONFIG
+
+ if (success) {
+
+ UIDevice *device = [UIDevice currentDevice];;
+ NSString *serviceName = [NSString stringWithFormat:@"%@_%d ",device.name,port];
+ netService = [[[NSNetService alloc] initWithDomain:@"local." type:@"_sync._tcp." name:serviceName port:port] autorelease];
+ success = (netService != nil);
+ }
+ if (success) {
+
+ [netService publishWithOptions:NSNetServiceNoAutoRename];
+
+ }
+
+ if ( success ) {
+ assert(port != 0);
+ _serverDidStartOnPort(port);
+ } else {
+ _stopServer(@"Start failed");
+ if (fd != -1) {
+ assert(startFailed == 0);
+ }
+ }
+
+#endif
+}
+
+void _stopServer(NSString * reason) {
+#ifdef ZERO_CONFIG
+ if (netService != nil) {
+ [netService stop];
+ netService = nil;
+ }
+ _serverDidStopWithReason(reason);
+#endif
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSlider.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSlider.h
new file mode 100644
index 000000000..26364618f
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSlider.h
@@ -0,0 +1,19 @@
+// SDLSlider.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLSlider : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* numTicks;
+@property(strong) NSNumber* position;
+@property(strong) NSString* sliderHeader;
+@property(strong) NSMutableArray* sliderFooter;
+@property(strong) NSNumber* timeout;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSlider.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSlider.m
new file mode 100644
index 000000000..e512e78e6
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSlider.m
@@ -0,0 +1,81 @@
+// SDLSlider.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSlider.h"
+
+#import "SDLNames.h"
+
+@implementation SDLSlider
+
+-(id) init {
+ if (self = [super initWithName:NAMES_Slider]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setNumTicks:(NSNumber*) numTicks {
+ if (numTicks != nil) {
+ [parameters setObject:numTicks forKey:NAMES_numTicks];
+ } else {
+ [parameters removeObjectForKey:NAMES_numTicks];
+ }
+}
+
+-(NSNumber*) numTicks {
+ return [parameters objectForKey:NAMES_numTicks];
+}
+
+-(void) setPosition:(NSNumber*) position {
+ if (position != nil) {
+ [parameters setObject:position forKey:NAMES_position];
+ } else {
+ [parameters removeObjectForKey:NAMES_position];
+ }
+}
+
+-(NSNumber*) position {
+ return [parameters objectForKey:NAMES_position];
+}
+
+-(void) setSliderHeader:(NSString*) sliderHeader {
+ if (sliderHeader != nil) {
+ [parameters setObject:sliderHeader forKey:NAMES_sliderHeader];
+ } else {
+ [parameters removeObjectForKey:NAMES_sliderHeader];
+ }
+}
+
+-(NSString*) sliderHeader {
+ return [parameters objectForKey:NAMES_sliderHeader];
+}
+
+-(void) setSliderFooter:(NSMutableArray*) sliderFooter {
+ if (sliderFooter != nil) {
+ [parameters setObject:sliderFooter forKey:NAMES_sliderFooter];
+ } else {
+ [parameters removeObjectForKey:NAMES_sliderFooter];
+ }
+}
+
+-(NSMutableArray*) sliderFooter {
+ return [parameters objectForKey:NAMES_sliderFooter];
+}
+
+-(void) setTimeout:(NSNumber*) timeout {
+ if (timeout != nil) {
+ [parameters setObject:timeout forKey:NAMES_timeout];
+ } else {
+ [parameters removeObjectForKey:NAMES_timeout];
+ }
+}
+
+-(NSNumber*) timeout {
+ return [parameters objectForKey:NAMES_timeout];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSliderResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSliderResponse.h
new file mode 100644
index 000000000..656260feb
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSliderResponse.h
@@ -0,0 +1,15 @@
+// SDLSliderResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLSliderResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* sliderPosition;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSliderResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSliderResponse.m
new file mode 100644
index 000000000..119e6a7d1
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSliderResponse.m
@@ -0,0 +1,33 @@
+// SDLSliderResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSliderResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLSliderResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_Slider]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setSliderPosition:(NSNumber*) sliderPosition {
+ if (sliderPosition != nil) {
+ [parameters setObject:sliderPosition forKey:NAMES_sliderPosition];
+ } else {
+ [parameters removeObjectForKey:NAMES_sliderPosition];
+ }
+}
+
+-(NSNumber*) sliderPosition {
+ return [parameters objectForKey:NAMES_sliderPosition];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSoftButton.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSoftButton.h
new file mode 100644
index 000000000..e8b7f2c09
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSoftButton.h
@@ -0,0 +1,24 @@
+// SDLSoftButton.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLSoftButtonType.h"
+#import "SDLImage.h"
+#import "SDLSystemAction.h"
+
+@interface SDLSoftButton : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLSoftButtonType* type;
+@property(strong) NSString* text;
+@property(strong) SDLImage* image;
+@property(strong) NSNumber* isHighlighted;
+@property(strong) NSNumber* softButtonID;
+@property(strong) SDLSystemAction* systemAction;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSoftButton.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSoftButton.m
new file mode 100644
index 000000000..2c29dace0
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSoftButton.m
@@ -0,0 +1,108 @@
+// SDLSoftButton.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSoftButton.h"
+
+#import "SDLNames.h"
+
+@implementation SDLSoftButton
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setType:(SDLSoftButtonType*) type {
+ if (type != nil) {
+ [store setObject:type forKey:NAMES_type];
+ } else {
+ [store removeObjectForKey:NAMES_type];
+ }
+}
+
+-(SDLSoftButtonType*) type {
+ NSObject* obj = [store objectForKey:NAMES_type];
+ if ([obj isKindOfClass:SDLSoftButtonType.class]) {
+ return (SDLSoftButtonType*)obj;
+ } else {
+ return [SDLSoftButtonType valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setText:(NSString*) text {
+ if (text != nil) {
+ [store setObject:text forKey:NAMES_text];
+ } else {
+ [store removeObjectForKey:NAMES_text];
+ }
+}
+
+-(NSString*) text {
+ return [store objectForKey:NAMES_text];
+}
+
+-(void) setImage:(SDLImage*) image {
+ if (image != nil) {
+ [store setObject:image forKey:NAMES_image];
+ } else {
+ [store removeObjectForKey:NAMES_image];
+ }
+}
+
+-(SDLImage*) image {
+ NSObject* obj = [store objectForKey:NAMES_image];
+ if ([obj isKindOfClass:SDLImage.class]) {
+ return (SDLImage*)obj;
+ } else {
+ return [[SDLImage alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setIsHighlighted:(NSNumber*) isHighlighted {
+ if (isHighlighted != nil) {
+ [store setObject:isHighlighted forKey:NAMES_isHighlighted];
+ } else {
+ [store removeObjectForKey:NAMES_isHighlighted];
+ }
+}
+
+-(NSNumber*) isHighlighted {
+ return [store objectForKey:NAMES_isHighlighted];
+}
+
+-(void) setSoftButtonID:(NSNumber*) softButtonID {
+ if (softButtonID != nil) {
+ [store setObject:softButtonID forKey:NAMES_softButtonID];
+ } else {
+ [store removeObjectForKey:NAMES_softButtonID];
+ }
+}
+
+-(NSNumber*) softButtonID {
+ return [store objectForKey:NAMES_softButtonID];
+}
+
+-(void) setSystemAction:(SDLSystemAction*) systemAction {
+ if (systemAction != nil) {
+ [store setObject:systemAction forKey:NAMES_systemAction];
+ } else {
+ [store removeObjectForKey:NAMES_systemAction];
+ }
+}
+
+-(SDLSystemAction*) systemAction {
+ NSObject* obj = [store objectForKey:NAMES_systemAction];
+ if ([obj isKindOfClass:SDLSystemAction.class]) {
+ return (SDLSystemAction*)obj;
+ } else {
+ return [SDLSystemAction valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSoftButtonCapabilities.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSoftButtonCapabilities.h
new file mode 100644
index 000000000..aab1b05f5
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSoftButtonCapabilities.h
@@ -0,0 +1,18 @@
+// SDLSoftButtonCapabilities.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+@interface SDLSoftButtonCapabilities : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* shortPressAvailable;
+@property(strong) NSNumber* longPressAvailable;
+@property(strong) NSNumber* upDownAvailable;
+@property(strong) NSNumber* imageSupported;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSoftButtonCapabilities.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSoftButtonCapabilities.m
new file mode 100644
index 000000000..06a4d5368
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSoftButtonCapabilities.m
@@ -0,0 +1,69 @@
+// SDLSoftButtonCapabilities.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSoftButtonCapabilities.h"
+
+#import "SDLNames.h"
+
+@implementation SDLSoftButtonCapabilities
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setShortPressAvailable:(NSNumber*) shortPressAvailable {
+ if (shortPressAvailable != nil) {
+ [store setObject:shortPressAvailable forKey:NAMES_shortPressAvailable];
+ } else {
+ [store removeObjectForKey:NAMES_shortPressAvailable];
+ }
+}
+
+-(NSNumber*) shortPressAvailable {
+ return [store objectForKey:NAMES_shortPressAvailable];
+}
+
+-(void) setLongPressAvailable:(NSNumber*) longPressAvailable {
+ if (longPressAvailable != nil) {
+ [store setObject:longPressAvailable forKey:NAMES_longPressAvailable];
+ } else {
+ [store removeObjectForKey:NAMES_longPressAvailable];
+ }
+}
+
+-(NSNumber*) longPressAvailable {
+ return [store objectForKey:NAMES_longPressAvailable];
+}
+
+-(void) setUpDownAvailable:(NSNumber*) upDownAvailable {
+ if (upDownAvailable != nil) {
+ [store setObject:upDownAvailable forKey:NAMES_upDownAvailable];
+ } else {
+ [store removeObjectForKey:NAMES_upDownAvailable];
+ }
+}
+
+-(NSNumber*) upDownAvailable {
+ return [store objectForKey:NAMES_upDownAvailable];
+}
+
+-(void) setImageSupported:(NSNumber*) imageSupported {
+ if (imageSupported != nil) {
+ [store setObject:imageSupported forKey:NAMES_imageSupported];
+ } else {
+ [store removeObjectForKey:NAMES_imageSupported];
+ }
+}
+
+-(NSNumber*) imageSupported {
+ return [store objectForKey:NAMES_imageSupported];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSoftButtonType.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSoftButtonType.h
new file mode 100644
index 000000000..718ac9a7d
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSoftButtonType.h
@@ -0,0 +1,17 @@
+// SDLSoftButtonType.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLSoftButtonType : SDLEnum {}
+
++(SDLSoftButtonType*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLSoftButtonType*) TEXT;
++(SDLSoftButtonType*) IMAGE;
++(SDLSoftButtonType*) BOTH;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSoftButtonType.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSoftButtonType.m
new file mode 100644
index 000000000..f1b58aaad
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSoftButtonType.m
@@ -0,0 +1,56 @@
+// SDLSoftButtonType.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSoftButtonType.h"
+
+SDLSoftButtonType* SDLSoftButtonType_TEXT = nil;
+SDLSoftButtonType* SDLSoftButtonType_IMAGE = nil;
+SDLSoftButtonType* SDLSoftButtonType_BOTH = nil;
+
+NSMutableArray* SDLSoftButtonType_values = nil;
+
+@implementation SDLSoftButtonType
+
++(SDLSoftButtonType*) valueOf:(NSString*) value {
+ for (SDLSoftButtonType* item in SDLSoftButtonType.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLSoftButtonType_values == nil) {
+ SDLSoftButtonType_values = [[NSMutableArray alloc] initWithObjects:
+ SDLSoftButtonType.TEXT,
+ SDLSoftButtonType.IMAGE,
+ SDLSoftButtonType.BOTH,
+ nil];
+ }
+ return SDLSoftButtonType_values;
+}
+
++(SDLSoftButtonType*) TEXT {
+ if (SDLSoftButtonType_TEXT == nil) {
+ SDLSoftButtonType_TEXT = [[SDLSoftButtonType alloc] initWithValue:@"TEXT"];
+ }
+ return SDLSoftButtonType_TEXT;
+}
+
++(SDLSoftButtonType*) IMAGE {
+ if (SDLSoftButtonType_IMAGE == nil) {
+ SDLSoftButtonType_IMAGE = [[SDLSoftButtonType alloc] initWithValue:@"IMAGE"];
+ }
+ return SDLSoftButtonType_IMAGE;
+}
+
++(SDLSoftButtonType*) BOTH {
+ if (SDLSoftButtonType_BOTH == nil) {
+ SDLSoftButtonType_BOTH = [[SDLSoftButtonType alloc] initWithValue:@"BOTH"];
+ }
+ return SDLSoftButtonType_BOTH;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSpeak.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSpeak.h
new file mode 100644
index 000000000..ad46c40d5
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSpeak.h
@@ -0,0 +1,15 @@
+// SDLSpeak.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLSpeak : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSMutableArray* ttsChunks;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSpeak.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSpeak.m
new file mode 100644
index 000000000..9589fdec1
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSpeak.m
@@ -0,0 +1,43 @@
+// SDLSpeak.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSpeak.h"
+
+#import "SDLNames.h"
+#import "SDLTTSChunk.h"
+
+@implementation SDLSpeak
+
+-(id) init {
+ if (self = [super initWithName:NAMES_Speak]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setTtsChunks:(NSMutableArray*) ttsChunks {
+ if (ttsChunks != nil) {
+ [parameters setObject:ttsChunks forKey:NAMES_ttsChunks];
+ } else {
+ [parameters removeObjectForKey:NAMES_ttsChunks];
+ }
+}
+
+-(NSMutableArray*) ttsChunks {
+ NSMutableArray* array = [parameters objectForKey:NAMES_ttsChunks];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLTTSChunk.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLTTSChunk alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSpeakResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSpeakResponse.h
new file mode 100644
index 000000000..0e0dc15cf
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSpeakResponse.h
@@ -0,0 +1,13 @@
+// SDLSpeakResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLSpeakResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSpeakResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSpeakResponse.m
new file mode 100644
index 000000000..c1c4d9763
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSpeakResponse.m
@@ -0,0 +1,21 @@
+// SDLSpeakResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSpeakResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLSpeakResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_Speak]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSpeechCapabilities.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSpeechCapabilities.h
new file mode 100644
index 000000000..63b038299
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSpeechCapabilities.h
@@ -0,0 +1,19 @@
+// SDLSpeechCapabilities.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLSpeechCapabilities : SDLEnum {}
+
++(SDLSpeechCapabilities*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLSpeechCapabilities*) TEXT;
++(SDLSpeechCapabilities*) SAPI_PHONEMES;
++(SDLSpeechCapabilities*) LHPLUS_PHONEMES;
++(SDLSpeechCapabilities*) PRE_RECORDED;
++(SDLSpeechCapabilities*) SILENCE;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSpeechCapabilities.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSpeechCapabilities.m
new file mode 100644
index 000000000..afe2d4e27
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSpeechCapabilities.m
@@ -0,0 +1,74 @@
+// SDLSpeechCapabilities.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSpeechCapabilities.h"
+
+SDLSpeechCapabilities* SDLSpeechCapabilities_TEXT = nil;
+SDLSpeechCapabilities* SDLSpeechCapabilities_SAPI_PHONEMES = nil;
+SDLSpeechCapabilities* SDLSpeechCapabilities_LHPLUS_PHONEMES = nil;
+SDLSpeechCapabilities* SDLSpeechCapabilities_PRE_RECORDED = nil;
+SDLSpeechCapabilities* SDLSpeechCapabilities_SILENCE = nil;
+
+NSMutableArray* SDLSpeechCapabilities_values = nil;
+
+@implementation SDLSpeechCapabilities
+
++(SDLSpeechCapabilities*) valueOf:(NSString*) value {
+ for (SDLSpeechCapabilities* item in SDLSpeechCapabilities.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLSpeechCapabilities_values == nil) {
+ SDLSpeechCapabilities_values = [[NSMutableArray alloc] initWithObjects:
+ SDLSpeechCapabilities.TEXT,
+ SDLSpeechCapabilities.SAPI_PHONEMES,
+ SDLSpeechCapabilities.LHPLUS_PHONEMES,
+ SDLSpeechCapabilities.PRE_RECORDED,
+ SDLSpeechCapabilities.SILENCE,
+ nil];
+ }
+ return SDLSpeechCapabilities_values;
+}
+
++(SDLSpeechCapabilities*) TEXT {
+ if (SDLSpeechCapabilities_TEXT == nil) {
+ SDLSpeechCapabilities_TEXT = [[SDLSpeechCapabilities alloc] initWithValue:@"TEXT"];
+ }
+ return SDLSpeechCapabilities_TEXT;
+}
+
++(SDLSpeechCapabilities*) SAPI_PHONEMES {
+ if (SDLSpeechCapabilities_SAPI_PHONEMES == nil) {
+ SDLSpeechCapabilities_SAPI_PHONEMES = [[SDLSpeechCapabilities alloc] initWithValue:@"SAPI_PHONEMES"];
+ }
+ return SDLSpeechCapabilities_SAPI_PHONEMES;
+}
+
++(SDLSpeechCapabilities*) LHPLUS_PHONEMES {
+ if (SDLSpeechCapabilities_LHPLUS_PHONEMES == nil) {
+ SDLSpeechCapabilities_LHPLUS_PHONEMES = [[SDLSpeechCapabilities alloc] initWithValue:@"LHPLUS_PHONEMES"];
+ }
+ return SDLSpeechCapabilities_LHPLUS_PHONEMES;
+}
+
++(SDLSpeechCapabilities*) PRE_RECORDED {
+ if (SDLSpeechCapabilities_PRE_RECORDED == nil) {
+ SDLSpeechCapabilities_PRE_RECORDED = [[SDLSpeechCapabilities alloc] initWithValue:@"PRE_RECORDED"];
+ }
+ return SDLSpeechCapabilities_PRE_RECORDED;
+}
+
++(SDLSpeechCapabilities*) SILENCE {
+ if (SDLSpeechCapabilities_SILENCE == nil) {
+ SDLSpeechCapabilities_SILENCE = [[SDLSpeechCapabilities alloc] initWithValue:@"SILENCE"];
+ }
+ return SDLSpeechCapabilities_SILENCE;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLStartTime.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLStartTime.h
new file mode 100644
index 000000000..1d842b7d9
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLStartTime.h
@@ -0,0 +1,17 @@
+// SDLStartTime.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+@interface SDLStartTime : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* hours;
+@property(strong) NSNumber* minutes;
+@property(strong) NSNumber* seconds;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLStartTime.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLStartTime.m
new file mode 100644
index 000000000..58b332dfa
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLStartTime.m
@@ -0,0 +1,57 @@
+// SDLStartTime.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLStartTime.h"
+
+#import "SDLNames.h"
+
+@implementation SDLStartTime
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setHours:(NSNumber*) hours {
+ if (hours != nil) {
+ [store setObject:hours forKey:NAMES_hours];
+ } else {
+ [store removeObjectForKey:NAMES_hours];
+ }
+}
+
+-(NSNumber*) hours {
+ return [store objectForKey:NAMES_hours];
+}
+
+-(void) setMinutes:(NSNumber*) minutes {
+ if (minutes != nil) {
+ [store setObject:minutes forKey:NAMES_minutes];
+ } else {
+ [store removeObjectForKey:NAMES_minutes];
+ }
+}
+
+-(NSNumber*) minutes {
+ return [store objectForKey:NAMES_minutes];
+}
+
+-(void) setSeconds:(NSNumber*) seconds {
+ if (seconds != nil) {
+ [store setObject:seconds forKey:NAMES_seconds];
+ } else {
+ [store removeObjectForKey:NAMES_seconds];
+ }
+}
+
+-(NSNumber*) seconds {
+ return [store objectForKey:NAMES_seconds];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeButton.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeButton.h
new file mode 100644
index 000000000..06fc92fd2
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeButton.h
@@ -0,0 +1,17 @@
+// SDLSubscribeButton.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+#import "SDLButtonName.h"
+
+@interface SDLSubscribeButton : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLButtonName* buttonName;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeButton.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeButton.m
new file mode 100644
index 000000000..95e7f26ff
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeButton.m
@@ -0,0 +1,38 @@
+// SDLSubscribeButton.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSubscribeButton.h"
+
+#import "SDLNames.h"
+
+@implementation SDLSubscribeButton
+
+-(id) init {
+ if (self = [super initWithName:NAMES_SubscribeButton]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setButtonName:(SDLButtonName*) buttonName {
+ if (buttonName != nil) {
+ [parameters setObject:buttonName forKey:NAMES_buttonName];
+ } else {
+ [parameters removeObjectForKey:NAMES_buttonName];
+ }
+}
+
+-(SDLButtonName*) buttonName {
+ NSObject* obj = [parameters objectForKey:NAMES_buttonName];
+ if ([obj isKindOfClass:SDLButtonName.class]) {
+ return (SDLButtonName*)obj;
+ } else {
+ return [SDLButtonName valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeButtonResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeButtonResponse.h
new file mode 100644
index 000000000..1fa5db9c4
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeButtonResponse.h
@@ -0,0 +1,13 @@
+// SDLSubscribeButtonResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLSubscribeButtonResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeButtonResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeButtonResponse.m
new file mode 100644
index 000000000..3fae04832
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeButtonResponse.m
@@ -0,0 +1,21 @@
+// SDLSubscribeButtonResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSubscribeButtonResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLSubscribeButtonResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_SubscribeButton]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeVehicleData.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeVehicleData.h
new file mode 100644
index 000000000..81eafca55
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeVehicleData.h
@@ -0,0 +1,38 @@
+// SDLSubscribeVehicleData.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLSubscribeVehicleData : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* gps;
+@property(strong) NSNumber* speed;
+@property(strong) NSNumber* rpm;
+@property(strong) NSNumber* fuelLevel;
+@property(strong) NSNumber* fuelLevel_State;
+@property(strong) NSNumber* instantFuelConsumption;
+@property(strong) NSNumber* externalTemperature;
+@property(strong) NSNumber* prndl;
+@property(strong) NSNumber* tirePressure;
+@property(strong) NSNumber* odometer;
+@property(strong) NSNumber* beltStatus;
+@property(strong) NSNumber* bodyInformation;
+@property(strong) NSNumber* deviceStatus;
+@property(strong) NSNumber* driverBraking;
+@property(strong) NSNumber* wiperStatus;
+@property(strong) NSNumber* headLampStatus;
+@property(strong) NSNumber* engineTorque;
+@property(strong) NSNumber* accPedalPosition;
+@property(strong) NSNumber* steeringWheelAngle;
+@property(strong) NSNumber* eCallInfo;
+@property(strong) NSNumber* airbagStatus;
+@property(strong) NSNumber* emergencyEvent;
+@property(strong) NSNumber* clusterModeStatus;
+@property(strong) NSNumber* myKey;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeVehicleData.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeVehicleData.m
new file mode 100644
index 000000000..566937a38
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeVehicleData.m
@@ -0,0 +1,309 @@
+// SDLSubscribeVehicleData.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSubscribeVehicleData.h"
+
+#import "SDLNames.h"
+
+@implementation SDLSubscribeVehicleData
+
+-(id) init {
+ if (self = [super initWithName:NAMES_SubscribeVehicleData]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setGps:(NSNumber*) gps {
+ if (gps != nil) {
+ [parameters setObject:gps forKey:NAMES_gps];
+ } else {
+ [parameters removeObjectForKey:NAMES_gps];
+ }
+}
+
+-(NSNumber*) gps {
+ return [parameters objectForKey:NAMES_gps];
+}
+
+-(void) setSpeed:(NSNumber*) speed {
+ if (speed != nil) {
+ [parameters setObject:speed forKey:NAMES_speed];
+ } else {
+ [parameters removeObjectForKey:NAMES_speed];
+ }
+}
+
+-(NSNumber*) speed {
+ return [parameters objectForKey:NAMES_speed];
+}
+
+-(void) setRpm:(NSNumber*) rpm {
+ if (rpm != nil) {
+ [parameters setObject:rpm forKey:NAMES_rpm];
+ } else {
+ [parameters removeObjectForKey:NAMES_rpm];
+ }
+}
+
+-(NSNumber*) rpm {
+ return [parameters objectForKey:NAMES_rpm];
+}
+
+-(void) setFuelLevel:(NSNumber*) fuelLevel {
+ if (fuelLevel != nil) {
+ [parameters setObject:fuelLevel forKey:NAMES_fuelLevel];
+ } else {
+ [parameters removeObjectForKey:NAMES_fuelLevel];
+ }
+}
+
+-(NSNumber*) fuelLevel {
+ return [parameters objectForKey:NAMES_fuelLevel];
+}
+
+-(void) setFuelLevel_State:(NSNumber*) fuelLevel_State {
+ if (fuelLevel_State != nil) {
+ [parameters setObject:fuelLevel_State forKey:NAMES_fuelLevel_State];
+ } else {
+ [parameters removeObjectForKey:NAMES_fuelLevel_State];
+ }
+}
+
+-(NSNumber*) fuelLevel_State {
+ return [parameters objectForKey:NAMES_fuelLevel_State];
+}
+
+-(void) setInstantFuelConsumption:(NSNumber*) instantFuelConsumption {
+ if (instantFuelConsumption != nil) {
+ [parameters setObject:instantFuelConsumption forKey:NAMES_instantFuelConsumption];
+ } else {
+ [parameters removeObjectForKey:NAMES_instantFuelConsumption];
+ }
+}
+
+-(NSNumber*) instantFuelConsumption {
+ return [parameters objectForKey:NAMES_instantFuelConsumption];
+}
+
+-(void) setExternalTemperature:(NSNumber*) externalTemperature {
+ if (externalTemperature != nil) {
+ [parameters setObject:externalTemperature forKey:NAMES_externalTemperature];
+ } else {
+ [parameters removeObjectForKey:NAMES_externalTemperature];
+ }
+}
+
+-(NSNumber*) externalTemperature {
+ return [parameters objectForKey:NAMES_externalTemperature];
+}
+
+-(void) setPrndl:(NSNumber*) prndl {
+ if (prndl != nil) {
+ [parameters setObject:prndl forKey:NAMES_prndl];
+ } else {
+ [parameters removeObjectForKey:NAMES_prndl];
+ }
+}
+
+-(NSNumber*) prndl {
+ return [parameters objectForKey:NAMES_prndl];
+}
+
+-(void) setTirePressure:(NSNumber*) tirePressure {
+ if (tirePressure != nil) {
+ [parameters setObject:tirePressure forKey:NAMES_tirePressure];
+ } else {
+ [parameters removeObjectForKey:NAMES_tirePressure];
+ }
+}
+
+-(NSNumber*) tirePressure {
+ return [parameters objectForKey:NAMES_tirePressure];
+}
+
+-(void) setOdometer:(NSNumber*) odometer {
+ if (odometer != nil) {
+ [parameters setObject:odometer forKey:NAMES_odometer];
+ } else {
+ [parameters removeObjectForKey:NAMES_odometer];
+ }
+}
+
+-(NSNumber*) odometer {
+ return [parameters objectForKey:NAMES_odometer];
+}
+
+-(void) setBeltStatus:(NSNumber*) beltStatus {
+ if (beltStatus != nil) {
+ [parameters setObject:beltStatus forKey:NAMES_beltStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_beltStatus];
+ }
+}
+
+-(NSNumber*) beltStatus {
+ return [parameters objectForKey:NAMES_beltStatus];
+}
+
+-(void) setBodyInformation:(NSNumber*) bodyInformation {
+ if (bodyInformation != nil) {
+ [parameters setObject:bodyInformation forKey:NAMES_bodyInformation];
+ } else {
+ [parameters removeObjectForKey:NAMES_bodyInformation];
+ }
+}
+
+-(NSNumber*) bodyInformation {
+ return [parameters objectForKey:NAMES_bodyInformation];
+}
+
+-(void) setDeviceStatus:(NSNumber*) deviceStatus {
+ if (deviceStatus != nil) {
+ [parameters setObject:deviceStatus forKey:NAMES_deviceStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_deviceStatus];
+ }
+}
+
+-(NSNumber*) deviceStatus {
+ return [parameters objectForKey:NAMES_deviceStatus];
+}
+
+-(void) setDriverBraking:(NSNumber*) driverBraking {
+ if (driverBraking != nil) {
+ [parameters setObject:driverBraking forKey:NAMES_driverBraking];
+ } else {
+ [parameters removeObjectForKey:NAMES_driverBraking];
+ }
+}
+
+-(NSNumber*) driverBraking {
+ return [parameters objectForKey:NAMES_driverBraking];
+}
+
+-(void) setWiperStatus:(NSNumber*) wiperStatus {
+ if (wiperStatus != nil) {
+ [parameters setObject:wiperStatus forKey:NAMES_wiperStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_wiperStatus];
+ }
+}
+
+-(NSNumber*) wiperStatus {
+ return [parameters objectForKey:NAMES_wiperStatus];
+}
+
+-(void) setHeadLampStatus:(NSNumber*) headLampStatus {
+ if (headLampStatus != nil) {
+ [parameters setObject:headLampStatus forKey:NAMES_headLampStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_headLampStatus];
+ }
+}
+
+-(NSNumber*) headLampStatus {
+ return [parameters objectForKey:NAMES_headLampStatus];
+}
+
+-(void) setEngineTorque:(NSNumber*) engineTorque {
+ if (engineTorque != nil) {
+ [parameters setObject:engineTorque forKey:NAMES_engineTorque];
+ } else {
+ [parameters removeObjectForKey:NAMES_engineTorque];
+ }
+}
+
+-(NSNumber*) engineTorque {
+ return [parameters objectForKey:NAMES_engineTorque];
+}
+
+-(void) setAccPedalPosition:(NSNumber*) accPedalPosition {
+ if (accPedalPosition != nil) {
+ [parameters setObject:accPedalPosition forKey:NAMES_accPedalPosition];
+ } else {
+ [parameters removeObjectForKey:NAMES_accPedalPosition];
+ }
+}
+
+-(NSNumber*) accPedalPosition {
+ return [parameters objectForKey:NAMES_accPedalPosition];
+}
+
+-(void) setSteeringWheelAngle:(NSNumber*) steeringWheelAngle {
+ if (steeringWheelAngle != nil) {
+ [parameters setObject:steeringWheelAngle forKey:NAMES_steeringWheelAngle];
+ } else {
+ [parameters removeObjectForKey:NAMES_steeringWheelAngle];
+ }
+}
+
+-(NSNumber*) steeringWheelAngle {
+ return [parameters objectForKey:NAMES_steeringWheelAngle];
+}
+
+-(void) setECallInfo:(NSNumber*) eCallInfo {
+ if (eCallInfo != nil) {
+ [parameters setObject:eCallInfo forKey:NAMES_eCallInfo];
+ } else {
+ [parameters removeObjectForKey:NAMES_eCallInfo];
+ }
+}
+
+-(NSNumber*) eCallInfo {
+ return [parameters objectForKey:NAMES_eCallInfo];
+}
+
+-(void) setAirbagStatus:(NSNumber*) airbagStatus {
+ if (airbagStatus != nil) {
+ [parameters setObject:airbagStatus forKey:NAMES_airbagStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_airbagStatus];
+ }
+}
+
+-(NSNumber*) airbagStatus {
+ return [parameters objectForKey:NAMES_airbagStatus];
+}
+
+-(void) setEmergencyEvent:(NSNumber*) emergencyEvent {
+ if (emergencyEvent != nil) {
+ [parameters setObject:emergencyEvent forKey:NAMES_emergencyEvent];
+ } else {
+ [parameters removeObjectForKey:NAMES_emergencyEvent];
+ }
+}
+
+-(NSNumber*) emergencyEvent {
+ return [parameters objectForKey:NAMES_emergencyEvent];
+}
+
+-(void) setClusterModeStatus:(NSNumber*) clusterModeStatus {
+ if (clusterModeStatus != nil) {
+ [parameters setObject:clusterModeStatus forKey:NAMES_clusterModeStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_clusterModeStatus];
+ }
+}
+
+-(NSNumber*) clusterModeStatus {
+ return [parameters objectForKey:NAMES_clusterModeStatus];
+}
+
+-(void) setMyKey:(NSNumber*) myKey {
+ if (myKey != nil) {
+ [parameters setObject:myKey forKey:NAMES_myKey];
+ } else {
+ [parameters removeObjectForKey:NAMES_myKey];
+ }
+}
+
+-(NSNumber*) myKey {
+ return [parameters objectForKey:NAMES_myKey];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h
new file mode 100644
index 000000000..d0ebc5e59
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h
@@ -0,0 +1,40 @@
+// SDLSubscribeVehicleDataResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+#import "SDLVehicleDataResult.h"
+
+@interface SDLSubscribeVehicleDataResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLVehicleDataResult* gps;
+@property(strong) SDLVehicleDataResult* speed;
+@property(strong) SDLVehicleDataResult* rpm;
+@property(strong) SDLVehicleDataResult* fuelLevel;
+@property(strong) SDLVehicleDataResult* fuelLevel_State;
+@property(strong) SDLVehicleDataResult* instantFuelConsumption;
+@property(strong) SDLVehicleDataResult* externalTemperature;
+@property(strong) SDLVehicleDataResult* prndl;
+@property(strong) SDLVehicleDataResult* tirePressure;
+@property(strong) SDLVehicleDataResult* odometer;
+@property(strong) SDLVehicleDataResult* beltStatus;
+@property(strong) SDLVehicleDataResult* bodyInformation;
+@property(strong) SDLVehicleDataResult* deviceStatus;
+@property(strong) SDLVehicleDataResult* driverBraking;
+@property(strong) SDLVehicleDataResult* wiperStatus;
+@property(strong) SDLVehicleDataResult* headLampStatus;
+@property(strong) SDLVehicleDataResult* engineTorque;
+@property(strong) SDLVehicleDataResult* accPedalPosition;
+@property(strong) SDLVehicleDataResult* steeringWheelAngle;
+@property(strong) SDLVehicleDataResult* eCallInfo;
+@property(strong) SDLVehicleDataResult* airbagStatus;
+@property(strong) SDLVehicleDataResult* emergencyEvent;
+@property(strong) SDLVehicleDataResult* clusterModes;
+@property(strong) SDLVehicleDataResult* myKey;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeVehicleDataResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeVehicleDataResponse.m
new file mode 100644
index 000000000..181e93861
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSubscribeVehicleDataResponse.m
@@ -0,0 +1,429 @@
+// SDLSubscribeVehicleDataResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSubscribeVehicleDataResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLSubscribeVehicleDataResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_SubscribeVehicleData]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setGps:(SDLVehicleDataResult*) gps {
+ if (gps != nil) {
+ [parameters setObject:gps forKey:NAMES_gps];
+ } else {
+ [parameters removeObjectForKey:NAMES_gps];
+ }
+}
+
+-(SDLVehicleDataResult*) gps {
+ NSObject* obj = [parameters objectForKey:NAMES_gps];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setSpeed:(SDLVehicleDataResult*) speed {
+ if (speed != nil) {
+ [parameters setObject:speed forKey:NAMES_speed];
+ } else {
+ [parameters removeObjectForKey:NAMES_speed];
+ }
+}
+
+-(SDLVehicleDataResult*) speed {
+ NSObject* obj = [parameters objectForKey:NAMES_speed];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setRpm:(SDLVehicleDataResult*) rpm {
+ if (rpm != nil) {
+ [parameters setObject:rpm forKey:NAMES_rpm];
+ } else {
+ [parameters removeObjectForKey:NAMES_rpm];
+ }
+}
+
+-(SDLVehicleDataResult*) rpm {
+ NSObject* obj = [parameters objectForKey:NAMES_rpm];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setFuelLevel:(SDLVehicleDataResult*) fuelLevel {
+ if (fuelLevel != nil) {
+ [parameters setObject:fuelLevel forKey:NAMES_fuelLevel];
+ } else {
+ [parameters removeObjectForKey:NAMES_fuelLevel];
+ }
+}
+
+-(SDLVehicleDataResult*) fuelLevel {
+ NSObject* obj = [parameters objectForKey:NAMES_fuelLevel];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setFuelLevel_State:(SDLVehicleDataResult*) fuelLevel_State {
+ if (fuelLevel_State != nil) {
+ [parameters setObject:fuelLevel_State forKey:NAMES_fuelLevel_State];
+ } else {
+ [parameters removeObjectForKey:NAMES_fuelLevel_State];
+ }
+}
+
+-(SDLVehicleDataResult*) fuelLevel_State {
+ NSObject* obj = [parameters objectForKey:NAMES_fuelLevel_State];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setInstantFuelConsumption:(SDLVehicleDataResult*) instantFuelConsumption {
+ if (instantFuelConsumption != nil) {
+ [parameters setObject:instantFuelConsumption forKey:NAMES_instantFuelConsumption];
+ } else {
+ [parameters removeObjectForKey:NAMES_instantFuelConsumption];
+ }
+}
+
+-(SDLVehicleDataResult*) instantFuelConsumption {
+ NSObject* obj = [parameters objectForKey:NAMES_instantFuelConsumption];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setExternalTemperature:(SDLVehicleDataResult*) externalTemperature {
+ if (externalTemperature != nil) {
+ [parameters setObject:externalTemperature forKey:NAMES_externalTemperature];
+ } else {
+ [parameters removeObjectForKey:NAMES_externalTemperature];
+ }
+}
+
+-(SDLVehicleDataResult*) externalTemperature {
+ NSObject* obj = [parameters objectForKey:NAMES_externalTemperature];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setPrndl:(SDLVehicleDataResult*) prndl {
+ if (prndl != nil) {
+ [parameters setObject:prndl forKey:NAMES_prndl];
+ } else {
+ [parameters removeObjectForKey:NAMES_prndl];
+ }
+}
+
+-(SDLVehicleDataResult*) prndl {
+ NSObject* obj = [parameters objectForKey:NAMES_prndl];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setTirePressure:(SDLVehicleDataResult*) tirePressure {
+ if (tirePressure != nil) {
+ [parameters setObject:tirePressure forKey:NAMES_tirePressure];
+ } else {
+ [parameters removeObjectForKey:NAMES_tirePressure];
+ }
+}
+
+-(SDLVehicleDataResult*) tirePressure {
+ NSObject* obj = [parameters objectForKey:NAMES_tirePressure];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setOdometer:(SDLVehicleDataResult*) odometer {
+ if (odometer != nil) {
+ [parameters setObject:odometer forKey:NAMES_odometer];
+ } else {
+ [parameters removeObjectForKey:NAMES_odometer];
+ }
+}
+
+-(SDLVehicleDataResult*) odometer {
+ NSObject* obj = [parameters objectForKey:NAMES_odometer];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setBeltStatus:(SDLVehicleDataResult*) beltStatus {
+ if (beltStatus != nil) {
+ [parameters setObject:beltStatus forKey:NAMES_beltStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_beltStatus];
+ }
+}
+
+-(SDLVehicleDataResult*) beltStatus {
+ NSObject* obj = [parameters objectForKey:NAMES_beltStatus];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setBodyInformation:(SDLVehicleDataResult*) bodyInformation {
+ if (bodyInformation != nil) {
+ [parameters setObject:bodyInformation forKey:NAMES_bodyInformation];
+ } else {
+ [parameters removeObjectForKey:NAMES_bodyInformation];
+ }
+}
+
+-(SDLVehicleDataResult*) bodyInformation {
+ NSObject* obj = [parameters objectForKey:NAMES_bodyInformation];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setDeviceStatus:(SDLVehicleDataResult*) deviceStatus {
+ if (deviceStatus != nil) {
+ [parameters setObject:deviceStatus forKey:NAMES_deviceStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_deviceStatus];
+ }
+}
+
+-(SDLVehicleDataResult*) deviceStatus {
+ NSObject* obj = [parameters objectForKey:NAMES_deviceStatus];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setDriverBraking:(SDLVehicleDataResult*) driverBraking {
+ if (driverBraking != nil) {
+ [parameters setObject:driverBraking forKey:NAMES_driverBraking];
+ } else {
+ [parameters removeObjectForKey:NAMES_driverBraking];
+ }
+}
+
+-(SDLVehicleDataResult*) driverBraking {
+ NSObject* obj = [parameters objectForKey:NAMES_driverBraking];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setWiperStatus:(SDLVehicleDataResult*) wiperStatus {
+ if (wiperStatus != nil) {
+ [parameters setObject:wiperStatus forKey:NAMES_wiperStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_wiperStatus];
+ }
+}
+
+-(SDLVehicleDataResult*) wiperStatus {
+ NSObject* obj = [parameters objectForKey:NAMES_wiperStatus];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setHeadLampStatus:(SDLVehicleDataResult*) headLampStatus {
+ if (headLampStatus != nil) {
+ [parameters setObject:headLampStatus forKey:NAMES_headLampStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_headLampStatus];
+ }
+}
+
+-(SDLVehicleDataResult*) headLampStatus {
+ NSObject* obj = [parameters objectForKey:NAMES_headLampStatus];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setEngineTorque:(SDLVehicleDataResult*) engineTorque {
+ if (engineTorque != nil) {
+ [parameters setObject:engineTorque forKey:NAMES_engineTorque];
+ } else {
+ [parameters removeObjectForKey:NAMES_engineTorque];
+ }
+}
+
+-(SDLVehicleDataResult*) engineTorque {
+ NSObject* obj = [parameters objectForKey:NAMES_engineTorque];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setAccPedalPosition:(SDLVehicleDataResult*) accPedalPosition {
+ if (accPedalPosition != nil) {
+ [parameters setObject:accPedalPosition forKey:NAMES_accPedalPosition];
+ } else {
+ [parameters removeObjectForKey:NAMES_accPedalPosition];
+ }
+}
+
+-(SDLVehicleDataResult*) accPedalPosition {
+ NSObject* obj = [parameters objectForKey:NAMES_accPedalPosition];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setSteeringWheelAngle:(SDLVehicleDataResult*) steeringWheelAngle {
+ if (steeringWheelAngle != nil) {
+ [parameters setObject:steeringWheelAngle forKey:NAMES_steeringWheelAngle];
+ } else {
+ [parameters removeObjectForKey:NAMES_steeringWheelAngle];
+ }
+}
+
+-(SDLVehicleDataResult*) steeringWheelAngle {
+ NSObject* obj = [parameters objectForKey:NAMES_steeringWheelAngle];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setECallInfo:(SDLVehicleDataResult*) eCallInfo {
+ if (eCallInfo != nil) {
+ [parameters setObject:eCallInfo forKey:NAMES_eCallInfo];
+ } else {
+ [parameters removeObjectForKey:NAMES_eCallInfo];
+ }
+}
+
+-(SDLVehicleDataResult*) eCallInfo {
+ NSObject* obj = [parameters objectForKey:NAMES_eCallInfo];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setAirbagStatus:(SDLVehicleDataResult*) airbagStatus {
+ if (airbagStatus != nil) {
+ [parameters setObject:airbagStatus forKey:NAMES_airbagStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_airbagStatus];
+ }
+}
+
+-(SDLVehicleDataResult*) airbagStatus {
+ NSObject* obj = [parameters objectForKey:NAMES_airbagStatus];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setEmergencyEvent:(SDLVehicleDataResult*) emergencyEvent {
+ if (emergencyEvent != nil) {
+ [parameters setObject:emergencyEvent forKey:NAMES_emergencyEvent];
+ } else {
+ [parameters removeObjectForKey:NAMES_emergencyEvent];
+ }
+}
+
+-(SDLVehicleDataResult*) emergencyEvent {
+ NSObject* obj = [parameters objectForKey:NAMES_emergencyEvent];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setClusterModes:(SDLVehicleDataResult*) clusterModes {
+ if (clusterModes != nil) {
+ [parameters setObject:clusterModes forKey:NAMES_clusterModes];
+ } else {
+ [parameters removeObjectForKey:NAMES_clusterModes];
+ }
+}
+
+-(SDLVehicleDataResult*) clusterModes {
+ NSObject* obj = [parameters objectForKey:NAMES_clusterModes];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setMyKey:(SDLVehicleDataResult*) myKey {
+ if (myKey != nil) {
+ [parameters setObject:myKey forKey:NAMES_myKey];
+ } else {
+ [parameters removeObjectForKey:NAMES_myKey];
+ }
+}
+
+-(SDLVehicleDataResult*) myKey {
+ NSObject* obj = [parameters objectForKey:NAMES_myKey];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSyncMsgVersion.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSyncMsgVersion.h
new file mode 100644
index 000000000..602411065
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSyncMsgVersion.h
@@ -0,0 +1,16 @@
+// SDLSyncMsgVersion.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+@interface SDLSyncMsgVersion : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* majorVersion;
+@property(strong) NSNumber* minorVersion;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSyncMsgVersion.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSyncMsgVersion.m
new file mode 100644
index 000000000..009c44955
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSyncMsgVersion.m
@@ -0,0 +1,48 @@
+// SDLSyncMsgVersion.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSyncMsgVersion.h"
+
+#import "SDLNames.h"
+
+@implementation SDLSyncMsgVersion
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setMajorVersion:(NSNumber*) majorVersion {
+ if (majorVersion != nil) {
+ [store setObject:majorVersion forKey:NAMES_majorVersion];
+ } else {
+ [store removeObjectForKey:NAMES_majorVersion];
+ }
+}
+
+-(NSNumber*) majorVersion {
+ return [store objectForKey:NAMES_majorVersion];
+}
+
+-(void) setMinorVersion:(NSNumber*) minorVersion {
+ if (minorVersion != nil) {
+ [store setObject:minorVersion forKey:NAMES_minorVersion];
+ } else {
+ [store removeObjectForKey:NAMES_minorVersion];
+ }
+}
+
+-(NSNumber*) minorVersion {
+ return [store objectForKey:NAMES_minorVersion];
+}
+
+- (NSString *)description {
+ return [NSString stringWithFormat:@"%@.%@", self.majorVersion, self.minorVersion];
+}
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSyncPData.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSyncPData.h
new file mode 100644
index 000000000..fd9794d72
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSyncPData.h
@@ -0,0 +1,13 @@
+// SDLSyncPData.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLSyncPData : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSyncPData.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSyncPData.m
new file mode 100644
index 000000000..a065b5cf0
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSyncPData.m
@@ -0,0 +1,21 @@
+// SDLSyncPData.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSyncPData.h"
+
+#import "SDLNames.h"
+
+@implementation SDLSyncPData
+
+-(id) init {
+ if (self = [super initWithName:NAMES_SyncPData]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSyncPDataResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSyncPDataResponse.h
new file mode 100644
index 000000000..88a3a70f5
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSyncPDataResponse.h
@@ -0,0 +1,13 @@
+// SDLSyncPDataResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLSyncPDataResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSyncPDataResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSyncPDataResponse.m
new file mode 100644
index 000000000..f87e75dc1
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSyncPDataResponse.m
@@ -0,0 +1,21 @@
+// SDLSyncPDataResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSyncPDataResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLSyncPDataResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_SyncPData]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemAction.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemAction.h
new file mode 100644
index 000000000..6c6f0244d
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemAction.h
@@ -0,0 +1,17 @@
+// SDLSystemAction.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLSystemAction : SDLEnum {}
+
++(SDLSystemAction*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLSystemAction*) DEFAULT_ACTION;
++(SDLSystemAction*) STEAL_FOCUS;
++(SDLSystemAction*) KEEP_CONTEXT;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemAction.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemAction.m
new file mode 100644
index 000000000..08ad7533e
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemAction.m
@@ -0,0 +1,56 @@
+// SDLSystemAction.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSystemAction.h"
+
+SDLSystemAction* SDLSystemAction_DEFAULT_ACTION = nil;
+SDLSystemAction* SDLSystemAction_STEAL_FOCUS = nil;
+SDLSystemAction* SDLSystemAction_KEEP_CONTEXT = nil;
+
+NSMutableArray* SDLSystemAction_values = nil;
+
+@implementation SDLSystemAction
+
++(SDLSystemAction*) valueOf:(NSString*) value {
+ for (SDLSystemAction* item in SDLSystemAction.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLSystemAction_values == nil) {
+ SDLSystemAction_values = [[NSMutableArray alloc] initWithObjects:
+ SDLSystemAction.DEFAULT_ACTION,
+ SDLSystemAction.STEAL_FOCUS,
+ SDLSystemAction.KEEP_CONTEXT,
+ nil];
+ }
+ return SDLSystemAction_values;
+}
+
++(SDLSystemAction*) DEFAULT_ACTION {
+ if (SDLSystemAction_DEFAULT_ACTION == nil) {
+ SDLSystemAction_DEFAULT_ACTION = [[SDLSystemAction alloc] initWithValue:@"DEFAULT_ACTION"];
+ }
+ return SDLSystemAction_DEFAULT_ACTION;
+}
+
++(SDLSystemAction*) STEAL_FOCUS {
+ if (SDLSystemAction_STEAL_FOCUS == nil) {
+ SDLSystemAction_STEAL_FOCUS = [[SDLSystemAction alloc] initWithValue:@"STEAL_FOCUS"];
+ }
+ return SDLSystemAction_STEAL_FOCUS;
+}
+
++(SDLSystemAction*) KEEP_CONTEXT {
+ if (SDLSystemAction_KEEP_CONTEXT == nil) {
+ SDLSystemAction_KEEP_CONTEXT = [[SDLSystemAction alloc] initWithValue:@"KEEP_CONTEXT"];
+ }
+ return SDLSystemAction_KEEP_CONTEXT;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemContext.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemContext.h
new file mode 100644
index 000000000..92f398d07
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemContext.h
@@ -0,0 +1,19 @@
+// SDLSystemContext.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLSystemContext : SDLEnum {}
+
++(SDLSystemContext*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLSystemContext*) MAIN;
++(SDLSystemContext*) VRSESSION;
++(SDLSystemContext*) MENU;
++(SDLSystemContext*) HMI_OBSCURED;
++(SDLSystemContext*) ALERT;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemContext.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemContext.m
new file mode 100644
index 000000000..178b949d7
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemContext.m
@@ -0,0 +1,74 @@
+// SDLSystemContext.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSystemContext.h"
+
+SDLSystemContext* SDLSystemContext_MAIN = nil;
+SDLSystemContext* SDLSystemContext_VRSESSION = nil;
+SDLSystemContext* SDLSystemContext_MENU = nil;
+SDLSystemContext* SDLSystemContext_HMI_OBSCURED = nil;
+SDLSystemContext* SDLSystemContext_ALERT = nil;
+
+NSMutableArray* SDLSystemContext_values = nil;
+
+@implementation SDLSystemContext
+
++(SDLSystemContext*) valueOf:(NSString*) value {
+ for (SDLSystemContext* item in SDLSystemContext.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLSystemContext_values == nil) {
+ SDLSystemContext_values = [[NSMutableArray alloc] initWithObjects:
+ SDLSystemContext.MAIN,
+ SDLSystemContext.VRSESSION,
+ SDLSystemContext.MENU,
+ SDLSystemContext.HMI_OBSCURED,
+ SDLSystemContext.ALERT,
+ nil];
+ }
+ return SDLSystemContext_values;
+}
+
++(SDLSystemContext*) MAIN {
+ if (SDLSystemContext_MAIN == nil) {
+ SDLSystemContext_MAIN = [[SDLSystemContext alloc] initWithValue:@"MAIN"];
+ }
+ return SDLSystemContext_MAIN;
+}
+
++(SDLSystemContext*) VRSESSION {
+ if (SDLSystemContext_VRSESSION == nil) {
+ SDLSystemContext_VRSESSION = [[SDLSystemContext alloc] initWithValue:@"VRSESSION"];
+ }
+ return SDLSystemContext_VRSESSION;
+}
+
++(SDLSystemContext*) MENU {
+ if (SDLSystemContext_MENU == nil) {
+ SDLSystemContext_MENU = [[SDLSystemContext alloc] initWithValue:@"MENU"];
+ }
+ return SDLSystemContext_MENU;
+}
+
++(SDLSystemContext*) HMI_OBSCURED {
+ if (SDLSystemContext_HMI_OBSCURED == nil) {
+ SDLSystemContext_HMI_OBSCURED = [[SDLSystemContext alloc] initWithValue:@"HMI_OBSCURED"];
+ }
+ return SDLSystemContext_HMI_OBSCURED;
+}
+
++(SDLSystemContext*) ALERT {
+ if (SDLSystemContext_ALERT == nil) {
+ SDLSystemContext_ALERT = [[SDLSystemContext alloc] initWithValue:@"ALERT"];
+ }
+ return SDLSystemContext_ALERT;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemRequest.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemRequest.h
new file mode 100644
index 000000000..f7b461832
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemRequest.h
@@ -0,0 +1,18 @@
+// SDLSystemRequest.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+#import "SDLRequestType.h"
+
+@interface SDLSystemRequest : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLRequestType* requestType;
+@property(strong) NSString* fileName;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemRequest.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemRequest.m
new file mode 100644
index 000000000..ebf53befc
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemRequest.m
@@ -0,0 +1,50 @@
+// SDLSystemRequest.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSystemRequest.h"
+
+#import "SDLNames.h"
+
+@implementation SDLSystemRequest
+
+-(id) init {
+ if (self = [super initWithName:NAMES_SystemRequest]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setRequestType:(SDLRequestType*) requestType {
+ if (requestType != nil) {
+ [parameters setObject:requestType forKey:NAMES_requestType];
+ } else {
+ [parameters removeObjectForKey:NAMES_requestType];
+ }
+}
+
+-(SDLRequestType*) requestType {
+ NSObject* obj = [parameters objectForKey:NAMES_requestType];
+ if ([obj isKindOfClass:SDLRequestType.class]) {
+ return (SDLRequestType*)obj;
+ } else {
+ return [SDLRequestType valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setFileName:(NSString*) fileName {
+ if (fileName != nil) {
+ [parameters setObject:fileName forKey:NAMES_fileName];
+ } else {
+ [parameters removeObjectForKey:NAMES_fileName];
+ }
+}
+
+-(NSString*) fileName {
+ return [parameters objectForKey:NAMES_fileName];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemRequestResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemRequestResponse.h
new file mode 100644
index 000000000..e91fbf9f5
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemRequestResponse.h
@@ -0,0 +1,13 @@
+// SDLSystemRequestResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLSystemRequestResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemRequestResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemRequestResponse.m
new file mode 100644
index 000000000..71162b775
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLSystemRequestResponse.m
@@ -0,0 +1,21 @@
+// SDLSystemRequestResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLSystemRequestResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLSystemRequestResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_SystemRequest]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTBTState.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTBTState.h
new file mode 100644
index 000000000..1fa8c43fe
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTBTState.h
@@ -0,0 +1,24 @@
+// SDLTBTState.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLTBTState : SDLEnum {}
+
++(SDLTBTState*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLTBTState*) ROUTE_UPDATE_REQUEST;
++(SDLTBTState*) ROUTE_ACCEPTED;
++(SDLTBTState*) ROUTE_REFUSED;
++(SDLTBTState*) ROUTE_CANCELLED;
++(SDLTBTState*) ETA_REQUEST;
++(SDLTBTState*) NEXT_TURN_REQUEST;
++(SDLTBTState*) ROUTE_STATUS_REQUEST;
++(SDLTBTState*) ROUTE_SUMMARY_REQUEST;
++(SDLTBTState*) TRIP_STATUS_REQUEST;
++(SDLTBTState*) ROUTE_UPDATE_REQUEST_TIMEOUT;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTBTState.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTBTState.m
new file mode 100644
index 000000000..fa61dce9c
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTBTState.m
@@ -0,0 +1,119 @@
+// SDLTBTState.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLTBTState.h"
+
+SDLTBTState* SDLTBTState_ROUTE_UPDATE_REQUEST = nil;
+SDLTBTState* SDLTBTState_ROUTE_ACCEPTED = nil;
+SDLTBTState* SDLTBTState_ROUTE_REFUSED = nil;
+SDLTBTState* SDLTBTState_ROUTE_CANCELLED = nil;
+SDLTBTState* SDLTBTState_ETA_REQUEST = nil;
+SDLTBTState* SDLTBTState_NEXT_TURN_REQUEST = nil;
+SDLTBTState* SDLTBTState_ROUTE_STATUS_REQUEST = nil;
+SDLTBTState* SDLTBTState_ROUTE_SUMMARY_REQUEST = nil;
+SDLTBTState* SDLTBTState_TRIP_STATUS_REQUEST = nil;
+SDLTBTState* SDLTBTState_ROUTE_UPDATE_REQUEST_TIMEOUT = nil;
+
+NSMutableArray* SDLTBTState_values = nil;
+
+@implementation SDLTBTState
+
++(SDLTBTState*) valueOf:(NSString*) value {
+ for (SDLTBTState* item in SDLTBTState.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLTBTState_values == nil) {
+ SDLTBTState_values = [[NSMutableArray alloc] initWithObjects:
+ SDLTBTState.ROUTE_UPDATE_REQUEST,
+ SDLTBTState.ROUTE_ACCEPTED,
+ SDLTBTState.ROUTE_REFUSED,
+ SDLTBTState.ROUTE_CANCELLED,
+ SDLTBTState.ETA_REQUEST,
+ SDLTBTState.NEXT_TURN_REQUEST,
+ SDLTBTState.ROUTE_STATUS_REQUEST,
+ SDLTBTState.ROUTE_SUMMARY_REQUEST,
+ SDLTBTState.TRIP_STATUS_REQUEST,
+ SDLTBTState.ROUTE_UPDATE_REQUEST_TIMEOUT,
+ nil];
+ }
+ return SDLTBTState_values;
+}
+
++(SDLTBTState*) ROUTE_UPDATE_REQUEST {
+ if (SDLTBTState_ROUTE_UPDATE_REQUEST == nil) {
+ SDLTBTState_ROUTE_UPDATE_REQUEST = [[SDLTBTState alloc] initWithValue:@"ROUTE_UPDATE_REQUEST"];
+ }
+ return SDLTBTState_ROUTE_UPDATE_REQUEST;
+}
+
++(SDLTBTState*) ROUTE_ACCEPTED {
+ if (SDLTBTState_ROUTE_ACCEPTED == nil) {
+ SDLTBTState_ROUTE_ACCEPTED = [[SDLTBTState alloc] initWithValue:@"ROUTE_ACCEPTED"];
+ }
+ return SDLTBTState_ROUTE_ACCEPTED;
+}
+
++(SDLTBTState*) ROUTE_REFUSED {
+ if (SDLTBTState_ROUTE_REFUSED == nil) {
+ SDLTBTState_ROUTE_REFUSED = [[SDLTBTState alloc] initWithValue:@"ROUTE_REFUSED"];
+ }
+ return SDLTBTState_ROUTE_REFUSED;
+}
+
++(SDLTBTState*) ROUTE_CANCELLED {
+ if (SDLTBTState_ROUTE_CANCELLED == nil) {
+ SDLTBTState_ROUTE_CANCELLED = [[SDLTBTState alloc] initWithValue:@"ROUTE_CANCELLED"];
+ }
+ return SDLTBTState_ROUTE_CANCELLED;
+}
+
++(SDLTBTState*) ETA_REQUEST {
+ if (SDLTBTState_ETA_REQUEST == nil) {
+ SDLTBTState_ETA_REQUEST = [[SDLTBTState alloc] initWithValue:@"ETA_REQUEST"];
+ }
+ return SDLTBTState_ETA_REQUEST;
+}
+
++(SDLTBTState*) NEXT_TURN_REQUEST {
+ if (SDLTBTState_NEXT_TURN_REQUEST == nil) {
+ SDLTBTState_NEXT_TURN_REQUEST = [[SDLTBTState alloc] initWithValue:@"NEXT_TURN_REQUEST"];
+ }
+ return SDLTBTState_NEXT_TURN_REQUEST;
+}
+
++(SDLTBTState*) ROUTE_STATUS_REQUEST {
+ if (SDLTBTState_ROUTE_STATUS_REQUEST == nil) {
+ SDLTBTState_ROUTE_STATUS_REQUEST = [[SDLTBTState alloc] initWithValue:@"ROUTE_STATUS_REQUEST"];
+ }
+ return SDLTBTState_ROUTE_STATUS_REQUEST;
+}
+
++(SDLTBTState*) ROUTE_SUMMARY_REQUEST {
+ if (SDLTBTState_ROUTE_SUMMARY_REQUEST == nil) {
+ SDLTBTState_ROUTE_SUMMARY_REQUEST = [[SDLTBTState alloc] initWithValue:@"ROUTE_SUMMARY_REQUEST"];
+ }
+ return SDLTBTState_ROUTE_SUMMARY_REQUEST;
+}
+
++(SDLTBTState*) TRIP_STATUS_REQUEST {
+ if (SDLTBTState_TRIP_STATUS_REQUEST == nil) {
+ SDLTBTState_TRIP_STATUS_REQUEST = [[SDLTBTState alloc] initWithValue:@"TRIP_STATUS_REQUEST"];
+ }
+ return SDLTBTState_TRIP_STATUS_REQUEST;
+}
+
++(SDLTBTState*) ROUTE_UPDATE_REQUEST_TIMEOUT {
+ if (SDLTBTState_ROUTE_UPDATE_REQUEST_TIMEOUT == nil) {
+ SDLTBTState_ROUTE_UPDATE_REQUEST_TIMEOUT = [[SDLTBTState alloc] initWithValue:@"ROUTE_UPDATE_REQUEST_TIMEOUT"];
+ }
+ return SDLTBTState_ROUTE_UPDATE_REQUEST_TIMEOUT;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTCPTransport.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTCPTransport.h
new file mode 100644
index 000000000..475eaac9d
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTCPTransport.h
@@ -0,0 +1,12 @@
+// SDLTCPTransport.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLAbstractTransport.h"
+
+@interface SDLTCPTransport : SDLAbstractTransport {
+ CFSocketRef socket;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTCPTransport.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTCPTransport.m
new file mode 100644
index 000000000..a632cc177
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTCPTransport.m
@@ -0,0 +1,133 @@
+// SDLTCPTransport.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLTCPTransport.h"
+#import "SDLDebugTool.h"
+#import "SDLHexUtility.h"
+#import <errno.h>
+#import <signal.h>
+#import <stdio.h>
+#import <unistd.h>
+#import <sys/types.h>
+#import <sys/socket.h>
+#import <sys/wait.h>
+#import <netinet/in.h>
+#import <netdb.h>
+
+int call_socket(const char* hostname, const char* port) {
+
+ int status, sock;
+ struct addrinfo hints;
+ struct addrinfo* servinfo;
+
+ memset(&hints, 0, sizeof hints);
+ hints.ai_family = AF_UNSPEC;
+ hints.ai_socktype = SOCK_STREAM;
+
+ //no host name?, no problem, get local host
+ if (hostname == nil){
+ char localhost[128];
+ gethostname(localhost, sizeof localhost);
+ hostname = (const char*) &localhost;
+ }
+
+ //getaddrinfo setup
+ if ((status = getaddrinfo(hostname, port, &hints, &servinfo)) != 0) {
+ fprintf(stderr, "getaddrinfo error: %s\n", gai_strerror(status));
+ return(-1);
+ }
+
+ //get socket
+ if ((sock = socket(servinfo->ai_family, servinfo->ai_socktype, servinfo->ai_protocol)) < 0)
+ return(-1);
+
+ //connect
+ if (connect(sock, servinfo->ai_addr, servinfo->ai_addrlen) < 0) {
+ close(sock);
+ return(-1);
+ }
+
+ freeaddrinfo(servinfo); // free the linked-list
+ return(sock);
+}
+
+@implementation SDLTCPTransport
+
+static void TCPCallback(CFSocketRef socket, CFSocketCallBackType type, CFDataRef address, const void *data, void *info) {
+ if (kCFSocketConnectCallBack == type) {
+ SDLTCPTransport *transport = (__bridge SDLTCPTransport *)info;
+ SInt32 errorNumber = 0;
+ if (data) {
+ SInt32 *errorNumberPtr = (SInt32 *)data;
+ errorNumber = *errorNumberPtr;
+ }
+ [transport notifyTransportConnected];
+ } else if (kCFSocketDataCallBack == type) {
+ SDLTCPTransport *transport = (__bridge SDLTCPTransport *)info;
+
+ NSMutableString* byteStr = [NSMutableString stringWithCapacity:((int)CFDataGetLength((CFDataRef)data) * 2)];
+ for (int i = 0; i < (int)CFDataGetLength((CFDataRef)data); i++) {
+ [byteStr appendFormat:@"%02X", ((Byte*)(UInt8 *)CFDataGetBytePtr((CFDataRef)data))[i]];
+ }
+
+ [SDLDebugTool logInfo:[NSString stringWithFormat:@"Read %d bytes: %@", (int)CFDataGetLength((CFDataRef)data), byteStr] withType:SDLDebugType_Transport_TCP toOutput:SDLDebugOutput_DeviceConsole];
+
+ [transport handleDataReceivedFromTransport:[NSData dataWithBytes:(UInt8 *)CFDataGetBytePtr((CFDataRef)data) length:(int)CFDataGetLength((CFDataRef)data)]];
+ } else {
+ NSString *logMessage = [NSString stringWithFormat:@"unhandled TCPCallback: %lu", type];
+ [SDLDebugTool logInfo:logMessage withType:SDLDebugType_Transport_TCP toOutput:SDLDebugOutput_DeviceConsole];
+ }
+}
+
+- (void) connect {
+
+ [SDLDebugTool logInfo:@"Init" withType:SDLDebugType_Transport_TCP];
+
+ int sock_fd = call_socket([self.endpointName UTF8String], [self.endpointParam UTF8String]);
+ if (sock_fd < 0) {
+
+ [SDLDebugTool logInfo:@"Server Not Ready, Connection Failed" withType:SDLDebugType_Transport_TCP];
+ return;
+ }
+
+ CFSocketContext socketCtxt = {0, (__bridge void *)(self), NULL, NULL, NULL};
+ socket = CFSocketCreateWithNative(kCFAllocatorDefault, sock_fd, kCFSocketDataCallBack|kCFSocketConnectCallBack , (CFSocketCallBack) &TCPCallback, &socketCtxt);
+ CFRunLoopSourceRef source = CFSocketCreateRunLoopSource(kCFAllocatorDefault, socket, 0);
+ CFRunLoopRef loop = CFRunLoopGetCurrent();
+ CFRunLoopAddSource(loop, source, kCFRunLoopDefaultMode);
+ CFRelease(source);
+}
+
+- (void) sendData:(NSData*) msgBytes {
+
+ NSString* byteStr = [SDLHexUtility getHexString:msgBytes];
+ [SDLDebugTool logInfo:[NSString stringWithFormat:@"Sent %lu bytes: %@", (unsigned long)msgBytes.length, byteStr] withType:SDLDebugType_Transport_TCP toOutput:SDLDebugOutput_DeviceConsole];
+
+ CFSocketError e = CFSocketSendData(socket, NULL, (__bridge CFDataRef)msgBytes, 10000);
+ if (e != kCFSocketSuccess) {
+ NSString *errorCause = nil;
+ switch (e) {
+ case kCFSocketTimeout:
+ errorCause = @"Socket Timeout Error.";
+ break;
+
+ case kCFSocketError:
+ default:
+ errorCause = @"Socket Error.";
+ break;
+ }
+
+ [SDLDebugTool logInfo:[NSString stringWithFormat:@"Socket sendData error: %@", errorCause] withType:SDLDebugType_Transport_TCP toOutput:SDLDebugOutput_DeviceConsole];
+ }
+
+}
+
+- (void) dealloc {
+ if (socket != nil) {
+ CFSocketInvalidate(socket);
+ CFRelease(socket);
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTTSChunk.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTTSChunk.h
new file mode 100644
index 000000000..515d5d5ff
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTTSChunk.h
@@ -0,0 +1,18 @@
+// SDLTTSChunk.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLSpeechCapabilities.h"
+
+@interface SDLTTSChunk : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSString* text;
+@property(strong) SDLSpeechCapabilities* type;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTTSChunk.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTTSChunk.m
new file mode 100644
index 000000000..5fbb2dbcc
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTTSChunk.m
@@ -0,0 +1,50 @@
+// SDLTTSChunk.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLTTSChunk.h"
+
+#import "SDLNames.h"
+
+@implementation SDLTTSChunk
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setText:(NSString*) text {
+ if (text != nil) {
+ [store setObject:text forKey:NAMES_text];
+ } else {
+ [store removeObjectForKey:NAMES_text];
+ }
+}
+
+-(NSString*) text {
+ return [store objectForKey:NAMES_text];
+}
+
+-(void) setType:(SDLSpeechCapabilities*) type {
+ if (type != nil) {
+ [store setObject:type forKey:NAMES_type];
+ } else {
+ [store removeObjectForKey:NAMES_type];
+ }
+}
+
+-(SDLSpeechCapabilities*) type {
+ NSObject* obj = [store objectForKey:NAMES_type];
+ if ([obj isKindOfClass:SDLSpeechCapabilities.class]) {
+ return (SDLSpeechCapabilities*)obj;
+ } else {
+ return [SDLSpeechCapabilities valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTTSChunkFactory.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTTSChunkFactory.h
new file mode 100644
index 000000000..cc65c3995
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTTSChunkFactory.h
@@ -0,0 +1,15 @@
+// SDLTTSChunkFactory.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+
+#import "SDLJingle.h"
+#import "SDLTTSChunk.h"
+
+@interface SDLTTSChunkFactory : NSObject {}
+
++(SDLTTSChunk*) buildTTSChunkForString:(NSString*) text type:(SDLSpeechCapabilities*)type;
++(NSMutableArray*) buildTTSChunksFromSimple:(NSString*) simple;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTTSChunkFactory.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTTSChunkFactory.m
new file mode 100644
index 000000000..3ac2f2574
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTTSChunkFactory.m
@@ -0,0 +1,24 @@
+// SDLTTSChunkFactory.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLTTSChunkFactory.h"
+
+@implementation SDLTTSChunkFactory
+
++ (SDLTTSChunk *)buildTTSChunkForString:(NSString *)text type:(SDLSpeechCapabilities *)type {
+ SDLTTSChunk *ret = [[SDLTTSChunk alloc] init];
+ ret.text = text;
+ ret.type = type;
+
+ return ret;
+}
+
++ (NSMutableArray *)buildTTSChunksFromSimple:(NSString *)simple {
+ if (simple == nil)
+ return nil;
+
+ return [NSMutableArray arrayWithObject:[SDLTTSChunkFactory buildTTSChunkForString:simple type:[SDLSpeechCapabilities TEXT]]];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTextAlignment.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTextAlignment.h
new file mode 100644
index 000000000..8a0d44a5b
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTextAlignment.h
@@ -0,0 +1,17 @@
+// SDLTextAlignment.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLTextAlignment : SDLEnum {}
+
++(SDLTextAlignment*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLTextAlignment*) LEFT_ALIGNED;
++(SDLTextAlignment*) RIGHT_ALIGNED;
++(SDLTextAlignment*) CENTERED;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTextAlignment.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTextAlignment.m
new file mode 100644
index 000000000..2b044d12f
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTextAlignment.m
@@ -0,0 +1,56 @@
+// SDLTextAlignment.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLTextAlignment.h"
+
+SDLTextAlignment* SDLTextAlignment_LEFT_ALIGNED = nil;
+SDLTextAlignment* SDLTextAlignment_RIGHT_ALIGNED = nil;
+SDLTextAlignment* SDLTextAlignment_CENTERED = nil;
+
+NSMutableArray* SDLTextAlignment_values = nil;
+
+@implementation SDLTextAlignment
+
++(SDLTextAlignment*) valueOf:(NSString*) value {
+ for (SDLTextAlignment* item in SDLTextAlignment.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLTextAlignment_values == nil) {
+ SDLTextAlignment_values = [[NSMutableArray alloc] initWithObjects:
+ SDLTextAlignment.LEFT_ALIGNED,
+ SDLTextAlignment.RIGHT_ALIGNED,
+ SDLTextAlignment.CENTERED,
+ nil];
+ }
+ return SDLTextAlignment_values;
+}
+
++(SDLTextAlignment*) LEFT_ALIGNED {
+ if (SDLTextAlignment_LEFT_ALIGNED == nil) {
+ SDLTextAlignment_LEFT_ALIGNED = [[SDLTextAlignment alloc] initWithValue:@"LEFT_ALIGNED"];
+ }
+ return SDLTextAlignment_LEFT_ALIGNED;
+}
+
++(SDLTextAlignment*) RIGHT_ALIGNED {
+ if (SDLTextAlignment_RIGHT_ALIGNED == nil) {
+ SDLTextAlignment_RIGHT_ALIGNED = [[SDLTextAlignment alloc] initWithValue:@"RIGHT_ALIGNED"];
+ }
+ return SDLTextAlignment_RIGHT_ALIGNED;
+}
+
++(SDLTextAlignment*) CENTERED {
+ if (SDLTextAlignment_CENTERED == nil) {
+ SDLTextAlignment_CENTERED = [[SDLTextAlignment alloc] initWithValue:@"CENTERED"];
+ }
+ return SDLTextAlignment_CENTERED;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTextField.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTextField.h
new file mode 100644
index 000000000..64dee37b5
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTextField.h
@@ -0,0 +1,20 @@
+// SDLTextField.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLRPCMessage.h"
+
+#import "SDLTextFieldName.h"
+#import "SDLCharacterSet.h"
+
+@interface SDLTextField : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLTextFieldName* name;
+@property(strong) SDLCharacterSet* characterSet;
+@property(strong) NSNumber* width;
+@property(strong) NSNumber* rows;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTextField.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTextField.m
new file mode 100644
index 000000000..6fc8ee377
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTextField.m
@@ -0,0 +1,79 @@
+// SDLTextField.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLTextField.h"
+
+#import "SDLNames.h"
+
+@implementation SDLTextField
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setName:(SDLTextFieldName*) name {
+ if (name != nil) {
+ [store setObject:name forKey:NAMES_name];
+ } else {
+ [store removeObjectForKey:NAMES_name];
+ }
+}
+
+-(SDLTextFieldName*) name {
+ NSObject* obj = [store objectForKey:NAMES_name];
+ if ([obj isKindOfClass:SDLTextFieldName.class]) {
+ return (SDLTextFieldName*)obj;
+ } else {
+ return [SDLTextFieldName valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setCharacterSet:(SDLCharacterSet*) characterSet {
+ if (characterSet != nil) {
+ [store setObject:characterSet forKey:NAMES_characterSet];
+ } else {
+ [store removeObjectForKey:NAMES_characterSet];
+ }
+}
+
+-(SDLCharacterSet*) characterSet {
+ NSObject* obj = [store objectForKey:NAMES_characterSet];
+ if ([obj isKindOfClass:SDLCharacterSet.class]) {
+ return (SDLCharacterSet*)obj;
+ } else {
+ return [SDLCharacterSet valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setWidth:(NSNumber*) width {
+ if (width != nil) {
+ [store setObject:width forKey:NAMES_width];
+ } else {
+ [store removeObjectForKey:NAMES_width];
+ }
+}
+
+-(NSNumber*) width {
+ return [store objectForKey:NAMES_width];
+}
+
+-(void) setRows:(NSNumber*) rows {
+ if (rows != nil) {
+ [store setObject:rows forKey:NAMES_rows];
+ } else {
+ [store removeObjectForKey:NAMES_rows];
+ }
+}
+
+-(NSNumber*) rows {
+ return [store objectForKey:NAMES_rows];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTextFieldName.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTextFieldName.h
new file mode 100644
index 000000000..370186774
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTextFieldName.h
@@ -0,0 +1,38 @@
+// SDLTextFieldName.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLTextFieldName : SDLEnum {}
+
++(SDLTextFieldName*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLTextFieldName*) mainField1;
++(SDLTextFieldName*) mainField2;
++(SDLTextFieldName*) mainField3;
++(SDLTextFieldName*) mainField4;
++(SDLTextFieldName*) statusBar;
++(SDLTextFieldName*) mediaClock;
++(SDLTextFieldName*) mediaTrack;
++(SDLTextFieldName*) alertText1;
++(SDLTextFieldName*) alertText2;
++(SDLTextFieldName*) alertText3;
++(SDLTextFieldName*) scrollableMessageBody;
++(SDLTextFieldName*) initialInteractionText;
++(SDLTextFieldName*) navigationText1;
++(SDLTextFieldName*) navigationText2;
++(SDLTextFieldName*) ETA;
++(SDLTextFieldName*) totalDistance;
++(SDLTextFieldName*) audioPassThruDisplayText1;
++(SDLTextFieldName*) audioPassThruDisplayText2;
++(SDLTextFieldName*) sliderHeader;
++(SDLTextFieldName*) sliderFooter;
++(SDLTextFieldName*) menuName;
++(SDLTextFieldName*) secondaryText;
++(SDLTextFieldName*) tertiaryText;
++(SDLTextFieldName*) menuTitle;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTextFieldName.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTextFieldName.m
new file mode 100644
index 000000000..e4f3a8be7
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTextFieldName.m
@@ -0,0 +1,245 @@
+// SDLTextFieldName.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLTextFieldName.h"
+
+SDLTextFieldName* SDLTextFieldName_mainField1 = nil;
+SDLTextFieldName* SDLTextFieldName_mainField2 = nil;
+SDLTextFieldName* SDLTextFieldName_mainField3 = nil;
+SDLTextFieldName* SDLTextFieldName_mainField4 = nil;
+SDLTextFieldName* SDLTextFieldName_statusBar = nil;
+SDLTextFieldName* SDLTextFieldName_mediaClock = nil;
+SDLTextFieldName* SDLTextFieldName_mediaTrack = nil;
+SDLTextFieldName* SDLTextFieldName_alertText1 = nil;
+SDLTextFieldName* SDLTextFieldName_alertText2 = nil;
+SDLTextFieldName* SDLTextFieldName_alertText3 = nil;
+SDLTextFieldName* SDLTextFieldName_scrollableMessageBody = nil;
+SDLTextFieldName* SDLTextFieldName_initialInteractionText = nil;
+SDLTextFieldName* SDLTextFieldName_navigationText1 = nil;
+SDLTextFieldName* SDLTextFieldName_navigationText2 = nil;
+SDLTextFieldName* SDLTextFieldName_ETA = nil;
+SDLTextFieldName* SDLTextFieldName_totalDistance = nil;
+SDLTextFieldName* SDLTextFieldName_audioPassThruDisplayText1 = nil;
+SDLTextFieldName* SDLTextFieldName_audioPassThruDisplayText2 = nil;
+SDLTextFieldName* SDLTextFieldName_sliderHeader = nil;
+SDLTextFieldName* SDLTextFieldName_sliderFooter = nil;
+SDLTextFieldName* SDLTextFieldName_menuName = nil;
+SDLTextFieldName* SDLTextFieldName_secondaryText = nil;
+SDLTextFieldName* SDLTextFieldName_tertiaryText = nil;
+SDLTextFieldName* SDLTextFieldName_menuTitle = nil;
+
+NSMutableArray* SDLTextFieldName_values = nil;
+
+@implementation SDLTextFieldName
+
++(SDLTextFieldName*) valueOf:(NSString*) value {
+ for (SDLTextFieldName* item in SDLTextFieldName.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLTextFieldName_values == nil) {
+ SDLTextFieldName_values = [[NSMutableArray alloc] initWithObjects:
+ SDLTextFieldName.mainField1,
+ SDLTextFieldName.mainField2,
+ SDLTextFieldName.mainField3,
+ SDLTextFieldName.mainField4,
+ SDLTextFieldName.statusBar,
+ SDLTextFieldName.mediaClock,
+ SDLTextFieldName.mediaTrack,
+ SDLTextFieldName.alertText1,
+ SDLTextFieldName.alertText2,
+ SDLTextFieldName.alertText3,
+ SDLTextFieldName.scrollableMessageBody,
+ SDLTextFieldName.initialInteractionText,
+ SDLTextFieldName.navigationText1,
+ SDLTextFieldName.navigationText2,
+ SDLTextFieldName.ETA,
+ SDLTextFieldName.totalDistance,
+ SDLTextFieldName.audioPassThruDisplayText1,
+ SDLTextFieldName.audioPassThruDisplayText2,
+ SDLTextFieldName.sliderHeader,
+ SDLTextFieldName.sliderFooter,
+ SDLTextFieldName.menuName,
+ SDLTextFieldName.secondaryText,
+ SDLTextFieldName.tertiaryText,
+ SDLTextFieldName.menuTitle,
+ nil];
+ }
+ return SDLTextFieldName_values;
+}
+
++(SDLTextFieldName*) mainField1 {
+ if (SDLTextFieldName_mainField1 == nil) {
+ SDLTextFieldName_mainField1 = [[SDLTextFieldName alloc] initWithValue:@"mainField1"];
+ }
+ return SDLTextFieldName_mainField1;
+}
+
++(SDLTextFieldName*) mainField2 {
+ if (SDLTextFieldName_mainField2 == nil) {
+ SDLTextFieldName_mainField2 = [[SDLTextFieldName alloc] initWithValue:@"mainField2"];
+ }
+ return SDLTextFieldName_mainField2;
+}
+
++(SDLTextFieldName*) mainField3 {
+ if (SDLTextFieldName_mainField3 == nil) {
+ SDLTextFieldName_mainField3 = [[SDLTextFieldName alloc] initWithValue:@"mainField3"];
+ }
+ return SDLTextFieldName_mainField3;
+}
+
++(SDLTextFieldName*) mainField4 {
+ if (SDLTextFieldName_mainField4 == nil) {
+ SDLTextFieldName_mainField4 = [[SDLTextFieldName alloc] initWithValue:@"mainField4"];
+ }
+ return SDLTextFieldName_mainField4;
+}
+
++(SDLTextFieldName*) statusBar {
+ if (SDLTextFieldName_statusBar == nil) {
+ SDLTextFieldName_statusBar = [[SDLTextFieldName alloc] initWithValue:@"statusBar"];
+ }
+ return SDLTextFieldName_statusBar;
+}
+
++(SDLTextFieldName*) mediaClock {
+ if (SDLTextFieldName_mediaClock == nil) {
+ SDLTextFieldName_mediaClock = [[SDLTextFieldName alloc] initWithValue:@"mediaClock"];
+ }
+ return SDLTextFieldName_mediaClock;
+}
+
++(SDLTextFieldName*) mediaTrack {
+ if (SDLTextFieldName_mediaTrack == nil) {
+ SDLTextFieldName_mediaTrack = [[SDLTextFieldName alloc] initWithValue:@"mediaTrack"];
+ }
+ return SDLTextFieldName_mediaTrack;
+}
+
++(SDLTextFieldName*) alertText1 {
+ if (SDLTextFieldName_alertText1 == nil) {
+ SDLTextFieldName_alertText1 = [[SDLTextFieldName alloc] initWithValue:@"alertText1"];
+ }
+ return SDLTextFieldName_alertText1;
+}
+
++(SDLTextFieldName*) alertText2 {
+ if (SDLTextFieldName_alertText2 == nil) {
+ SDLTextFieldName_alertText2 = [[SDLTextFieldName alloc] initWithValue:@"alertText2"];
+ }
+ return SDLTextFieldName_alertText2;
+}
+
++(SDLTextFieldName*) alertText3 {
+ if (SDLTextFieldName_alertText3 == nil) {
+ SDLTextFieldName_alertText3 = [[SDLTextFieldName alloc] initWithValue:@"alertText3"];
+ }
+ return SDLTextFieldName_alertText3;
+}
+
++(SDLTextFieldName*) scrollableMessageBody {
+ if (SDLTextFieldName_scrollableMessageBody == nil) {
+ SDLTextFieldName_scrollableMessageBody = [[SDLTextFieldName alloc] initWithValue:@"scrollableMessageBody"];
+ }
+ return SDLTextFieldName_scrollableMessageBody;
+}
+
++(SDLTextFieldName*) initialInteractionText {
+ if (SDLTextFieldName_initialInteractionText == nil) {
+ SDLTextFieldName_initialInteractionText = [[SDLTextFieldName alloc] initWithValue:@"initialInteractionText"];
+ }
+ return SDLTextFieldName_initialInteractionText;
+}
+
++(SDLTextFieldName*) navigationText1 {
+ if (SDLTextFieldName_navigationText1 == nil) {
+ SDLTextFieldName_navigationText1 = [[SDLTextFieldName alloc] initWithValue:@"navigationText1"];
+ }
+ return SDLTextFieldName_navigationText1;
+}
+
++(SDLTextFieldName*) navigationText2 {
+ if (SDLTextFieldName_navigationText2 == nil) {
+ SDLTextFieldName_navigationText2 = [[SDLTextFieldName alloc] initWithValue:@"navigationText2"];
+ }
+ return SDLTextFieldName_navigationText2;
+}
+
++(SDLTextFieldName*) ETA {
+ if (SDLTextFieldName_ETA == nil) {
+ SDLTextFieldName_ETA = [[SDLTextFieldName alloc] initWithValue:@"ETA"];
+ }
+ return SDLTextFieldName_ETA;
+}
+
++(SDLTextFieldName*) totalDistance {
+ if (SDLTextFieldName_totalDistance == nil) {
+ SDLTextFieldName_totalDistance = [[SDLTextFieldName alloc] initWithValue:@"totalDistance"];
+ }
+ return SDLTextFieldName_totalDistance;
+}
+
++(SDLTextFieldName*) audioPassThruDisplayText1 {
+ if (SDLTextFieldName_audioPassThruDisplayText1 == nil) {
+ SDLTextFieldName_audioPassThruDisplayText1 = [[SDLTextFieldName alloc] initWithValue:@"audioPassThruDisplayText1"];
+ }
+ return SDLTextFieldName_audioPassThruDisplayText1;
+}
+
++(SDLTextFieldName*) audioPassThruDisplayText2 {
+ if (SDLTextFieldName_audioPassThruDisplayText2 == nil) {
+ SDLTextFieldName_audioPassThruDisplayText2 = [[SDLTextFieldName alloc] initWithValue:@"audioPassThruDisplayText2"];
+ }
+ return SDLTextFieldName_audioPassThruDisplayText2;
+}
+
++(SDLTextFieldName*) sliderHeader {
+ if (SDLTextFieldName_sliderHeader == nil) {
+ SDLTextFieldName_sliderHeader = [[SDLTextFieldName alloc] initWithValue:@"sliderHeader"];
+ }
+ return SDLTextFieldName_sliderHeader;
+}
+
++(SDLTextFieldName*) sliderFooter {
+ if (SDLTextFieldName_sliderFooter == nil) {
+ SDLTextFieldName_sliderFooter = [[SDLTextFieldName alloc] initWithValue:@"sliderFooter"];
+ }
+ return SDLTextFieldName_sliderFooter;
+}
+
++(SDLTextFieldName*) menuName {
+ if (SDLTextFieldName_menuName == nil) {
+ SDLTextFieldName_menuName = [[SDLTextFieldName alloc] initWithValue:@"menuName"];
+ }
+ return SDLTextFieldName_menuName;
+}
+
++(SDLTextFieldName*) secondaryText {
+ if (SDLTextFieldName_secondaryText == nil) {
+ SDLTextFieldName_secondaryText = [[SDLTextFieldName alloc] initWithValue:@"secondaryText"];
+ }
+ return SDLTextFieldName_secondaryText;
+}
+
++(SDLTextFieldName*) tertiaryText {
+ if (SDLTextFieldName_tertiaryText == nil) {
+ SDLTextFieldName_tertiaryText = [[SDLTextFieldName alloc] initWithValue:@"tertiaryText"];
+ }
+ return SDLTextFieldName_tertiaryText;
+}
+
++(SDLTextFieldName*) menuTitle {
+ if (SDLTextFieldName_menuTitle == nil) {
+ SDLTextFieldName_menuTitle = [[SDLTextFieldName alloc] initWithValue:@"menuTitle"];
+ }
+ return SDLTextFieldName_menuTitle;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTimerMode.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTimerMode.h
new file mode 100644
index 000000000..e3b2a264a
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTimerMode.h
@@ -0,0 +1,17 @@
+// SDLTimerMode.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLTimerMode : SDLEnum {}
+
++(SDLTimerMode*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLTimerMode*) UP;
++(SDLTimerMode*) DOWN;
++(SDLTimerMode*) NONE;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTimerMode.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTimerMode.m
new file mode 100644
index 000000000..005b993ec
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTimerMode.m
@@ -0,0 +1,56 @@
+// SDLTimerMode.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLTimerMode.h"
+
+SDLTimerMode* SDLTimerMode_UP = nil;
+SDLTimerMode* SDLTimerMode_DOWN = nil;
+SDLTimerMode* SDLTimerMode_NONE = nil;
+
+NSMutableArray* SDLTimerMode_values = nil;
+
+@implementation SDLTimerMode
+
++(SDLTimerMode*) valueOf:(NSString*) value {
+ for (SDLTimerMode* item in SDLTimerMode.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLTimerMode_values == nil) {
+ SDLTimerMode_values = [[NSMutableArray alloc] initWithObjects:
+ SDLTimerMode.UP,
+ SDLTimerMode.DOWN,
+ SDLTimerMode.NONE,
+ nil];
+ }
+ return SDLTimerMode_values;
+}
+
++(SDLTimerMode*) UP {
+ if (SDLTimerMode_UP == nil) {
+ SDLTimerMode_UP = [[SDLTimerMode alloc] initWithValue:@"UP"];
+ }
+ return SDLTimerMode_UP;
+}
+
++(SDLTimerMode*) DOWN {
+ if (SDLTimerMode_DOWN == nil) {
+ SDLTimerMode_DOWN = [[SDLTimerMode alloc] initWithValue:@"DOWN"];
+ }
+ return SDLTimerMode_DOWN;
+}
+
++(SDLTimerMode*) NONE {
+ if (SDLTimerMode_NONE == nil) {
+ SDLTimerMode_NONE = [[SDLTimerMode alloc] initWithValue:@"NONE"];
+ }
+ return SDLTimerMode_NONE;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTireStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTireStatus.h
new file mode 100644
index 000000000..55ad34db3
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTireStatus.h
@@ -0,0 +1,24 @@
+// SDLTireStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLWarningLightStatus.h"
+#import "SDLSingleTireStatus.h"
+
+@interface SDLTireStatus : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLWarningLightStatus* pressureTelltale;
+@property(strong) SDLSingleTireStatus* leftFront;
+@property(strong) SDLSingleTireStatus* rightFront;
+@property(strong) SDLSingleTireStatus* leftRear;
+@property(strong) SDLSingleTireStatus* rightRear;
+@property(strong) SDLSingleTireStatus* innerLeftRear;
+@property(strong) SDLSingleTireStatus* innerRightRear;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTireStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTireStatus.m
new file mode 100644
index 000000000..344ea1345
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTireStatus.m
@@ -0,0 +1,140 @@
+// SDLTireStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLTireStatus.h"
+
+#import "SDLNames.h"
+
+@implementation SDLTireStatus
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setPressureTelltale:(SDLWarningLightStatus*) pressureTelltale {
+ if (pressureTelltale != nil) {
+ [store setObject:pressureTelltale forKey:NAMES_pressureTelltale];
+ } else {
+ [store removeObjectForKey:NAMES_pressureTelltale];
+ }
+}
+
+-(SDLWarningLightStatus*) pressureTelltale {
+ NSObject* obj = [store objectForKey:NAMES_pressureTelltale];
+ if ([obj isKindOfClass:SDLWarningLightStatus.class]) {
+ return (SDLWarningLightStatus*)obj;
+ } else {
+ return [SDLWarningLightStatus valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setLeftFront:(SDLSingleTireStatus*) leftFront {
+ if (leftFront != nil) {
+ [store setObject:leftFront forKey:NAMES_leftFront];
+ } else {
+ [store removeObjectForKey:NAMES_leftFront];
+ }
+}
+
+-(SDLSingleTireStatus*) leftFront {
+ NSObject* obj = [store objectForKey:NAMES_leftFront];
+ if ([obj isKindOfClass:SDLSingleTireStatus.class]) {
+ return (SDLSingleTireStatus*)obj;
+ } else {
+ return [[SDLSingleTireStatus alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setRightFront:(SDLSingleTireStatus*) rightFront {
+ if (rightFront != nil) {
+ [store setObject:rightFront forKey:NAMES_rightFront];
+ } else {
+ [store removeObjectForKey:NAMES_rightFront];
+ }
+}
+
+-(SDLSingleTireStatus*) rightFront {
+ NSObject* obj = [store objectForKey:NAMES_rightFront];
+ if ([obj isKindOfClass:SDLSingleTireStatus.class]) {
+ return (SDLSingleTireStatus*)obj;
+ } else {
+ return [[SDLSingleTireStatus alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setLeftRear:(SDLSingleTireStatus*) leftRear {
+ if (leftRear != nil) {
+ [store setObject:leftRear forKey:NAMES_leftRear];
+ } else {
+ [store removeObjectForKey:NAMES_leftRear];
+ }
+}
+
+-(SDLSingleTireStatus*) leftRear {
+ NSObject* obj = [store objectForKey:NAMES_leftRear];
+ if ([obj isKindOfClass:SDLSingleTireStatus.class]) {
+ return (SDLSingleTireStatus*)obj;
+ } else {
+ return [[SDLSingleTireStatus alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setRightRear:(SDLSingleTireStatus*) rightRear {
+ if (rightRear != nil) {
+ [store setObject:rightRear forKey:NAMES_rightRear];
+ } else {
+ [store removeObjectForKey:NAMES_rightRear];
+ }
+}
+
+-(SDLSingleTireStatus*) rightRear {
+ NSObject* obj = [store objectForKey:NAMES_rightRear];
+ if ([obj isKindOfClass:SDLSingleTireStatus.class]) {
+ return (SDLSingleTireStatus*)obj;
+ } else {
+ return [[SDLSingleTireStatus alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setInnerLeftRear:(SDLSingleTireStatus*) innerLeftRear {
+ if (innerLeftRear != nil) {
+ [store setObject:innerLeftRear forKey:NAMES_innerLeftRear];
+ } else {
+ [store removeObjectForKey:NAMES_innerLeftRear];
+ }
+}
+
+-(SDLSingleTireStatus*) innerLeftRear {
+ NSObject* obj = [store objectForKey:NAMES_innerLeftRear];
+ if ([obj isKindOfClass:SDLSingleTireStatus.class]) {
+ return (SDLSingleTireStatus*)obj;
+ } else {
+ return [[SDLSingleTireStatus alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setInnerRightRear:(SDLSingleTireStatus*) innerRightRear {
+ if (innerRightRear != nil) {
+ [store setObject:innerRightRear forKey:NAMES_innerRightRear];
+ } else {
+ [store removeObjectForKey:NAMES_innerRightRear];
+ }
+}
+
+-(SDLSingleTireStatus*) innerRightRear {
+ NSObject* obj = [store objectForKey:NAMES_innerRightRear];
+ if ([obj isKindOfClass:SDLSingleTireStatus.class]) {
+ return (SDLSingleTireStatus*)obj;
+ } else {
+ return [[SDLSingleTireStatus alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchCoord.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchCoord.h
new file mode 100644
index 000000000..25c5d07e3
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchCoord.h
@@ -0,0 +1,16 @@
+// SDLTouchCoord.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+@interface SDLTouchCoord : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* x;
+@property(strong) NSNumber* y;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchCoord.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchCoord.m
new file mode 100644
index 000000000..9d1d5baa2
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchCoord.m
@@ -0,0 +1,45 @@
+// SDLTouchCoord.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLTouchCoord.h"
+
+#import "SDLNames.h"
+
+@implementation SDLTouchCoord
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setX:(NSNumber*) x {
+ if (x != nil) {
+ [store setObject:x forKey:NAMES_x];
+ } else {
+ [store removeObjectForKey:NAMES_x];
+ }
+}
+
+-(NSNumber*) x {
+ return [store objectForKey:NAMES_x];
+}
+
+-(void) setY:(NSNumber*) y {
+ if (y != nil) {
+ [store setObject:y forKey:NAMES_y];
+ } else {
+ [store removeObjectForKey:NAMES_y];
+ }
+}
+
+-(NSNumber*) y {
+ return [store objectForKey:NAMES_y];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchEvent.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchEvent.h
new file mode 100644
index 000000000..e0d9f9bcc
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchEvent.h
@@ -0,0 +1,17 @@
+// SDLTouchEvent.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+@interface SDLTouchEvent : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* touchEventId;
+@property(strong) NSMutableArray* timeStamp;
+@property(strong) NSMutableArray* coord;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchEvent.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchEvent.m
new file mode 100644
index 000000000..b363669a6
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchEvent.m
@@ -0,0 +1,67 @@
+// SDLTouchEvent.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLTouchEvent.h"
+
+#import "SDLNames.h"
+#import "SDLTouchCoord.h"
+
+@implementation SDLTouchEvent
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setTouchEventId:(NSNumber*) touchEventId {
+ if (touchEventId != nil) {
+ [store setObject:touchEventId forKey:NAMES_id];
+ } else {
+ [store removeObjectForKey:NAMES_id];
+ }
+}
+
+-(NSNumber*) touchEventId {
+ return [store objectForKey:NAMES_id];
+}
+
+-(void) setTimeStamp:(NSMutableArray*) timeStamp {
+ if (timeStamp != nil) {
+ [store setObject:timeStamp forKey:NAMES_ts];
+ } else {
+ [store removeObjectForKey:NAMES_ts];
+ }
+}
+
+-(NSMutableArray*) timeStamp {
+ return [store objectForKey:NAMES_ts];
+}
+
+-(void) setCoord:(NSMutableArray*) coord {
+ if (coord != nil) {
+ [store setObject:coord forKey:NAMES_c];
+ } else {
+ [store removeObjectForKey:NAMES_c];
+ }
+}
+
+-(NSMutableArray*) coord {
+ NSMutableArray* array = [store objectForKey:NAMES_c];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLTouchCoord.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLTouchCoord alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchEventCapabilities.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchEventCapabilities.h
new file mode 100644
index 000000000..4e5b1f62e
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchEventCapabilities.h
@@ -0,0 +1,17 @@
+// SDLTouchEventCapabilities.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+@interface SDLTouchEventCapabilities : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* pressAvailable;
+@property(strong) NSNumber* multiTouchAvailable;
+@property(strong) NSNumber* doublePressAvailable;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchEventCapabilities.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchEventCapabilities.m
new file mode 100644
index 000000000..4f503356a
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchEventCapabilities.m
@@ -0,0 +1,57 @@
+// SDLTouchEventCapabilities.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLTouchEventCapabilities.h"
+
+#import "SDLNames.h"
+
+@implementation SDLTouchEventCapabilities
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setPressAvailable:(NSNumber*) pressAvailable {
+ if (pressAvailable != nil) {
+ [store setObject:pressAvailable forKey:NAMES_pressAvailable];
+ } else {
+ [store removeObjectForKey:NAMES_pressAvailable];
+ }
+}
+
+-(NSNumber*) pressAvailable {
+ return [store objectForKey:NAMES_pressAvailable];
+}
+
+-(void) setMultiTouchAvailable:(NSNumber*) multiTouchAvailable {
+ if (multiTouchAvailable != nil) {
+ [store setObject:multiTouchAvailable forKey:NAMES_multiTouchAvailable];
+ } else {
+ [store removeObjectForKey:NAMES_multiTouchAvailable];
+ }
+}
+
+-(NSNumber*) multiTouchAvailable {
+ return [store objectForKey:NAMES_multiTouchAvailable];
+}
+
+-(void) setDoublePressAvailable:(NSNumber*) doublePressAvailable {
+ if (doublePressAvailable != nil) {
+ [store setObject:doublePressAvailable forKey:NAMES_doublePressAvailable];
+ } else {
+ [store removeObjectForKey:NAMES_doublePressAvailable];
+ }
+}
+
+-(NSNumber*) doublePressAvailable {
+ return [store objectForKey:NAMES_doublePressAvailable];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchType.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchType.h
new file mode 100644
index 000000000..de3a40117
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchType.h
@@ -0,0 +1,17 @@
+// SDLTouchType.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLTouchType : SDLEnum {}
+
++(SDLTouchType*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLTouchType*) BEGIN;
++(SDLTouchType*) MOVE;
++(SDLTouchType*) END;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchType.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchType.m
new file mode 100644
index 000000000..ce9cc509d
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTouchType.m
@@ -0,0 +1,56 @@
+// SDLTouchType.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLTouchType.h"
+
+SDLTouchType* SDLTouchType_BEGIN = nil;
+SDLTouchType* SDLTouchType_MOVE = nil;
+SDLTouchType* SDLTouchType_END = nil;
+
+NSMutableArray* SDLTouchType_values = nil;
+
+@implementation SDLTouchType
+
++(SDLTouchType*) valueOf:(NSString*) value {
+ for (SDLTouchType* item in SDLTouchType.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLTouchType_values == nil) {
+ SDLTouchType_values = [[NSMutableArray alloc] initWithObjects:
+ SDLTouchType.BEGIN,
+ SDLTouchType.MOVE,
+ SDLTouchType.END,
+ nil];
+ }
+ return SDLTouchType_values;
+}
+
++(SDLTouchType*) BEGIN {
+ if (SDLTouchType_BEGIN == nil) {
+ SDLTouchType_BEGIN = [[SDLTouchType alloc] initWithValue:@"BEGIN"];
+ }
+ return SDLTouchType_BEGIN;
+}
+
++(SDLTouchType*) MOVE {
+ if (SDLTouchType_MOVE == nil) {
+ SDLTouchType_MOVE = [[SDLTouchType alloc] initWithValue:@"MOVE"];
+ }
+ return SDLTouchType_MOVE;
+}
+
++(SDLTouchType*) END {
+ if (SDLTouchType_END == nil) {
+ SDLTouchType_END = [[SDLTouchType alloc] initWithValue:@"END"];
+ }
+ return SDLTouchType_END;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTransport.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTransport.h
new file mode 100644
index 000000000..f0c1d6fe7
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTransport.h
@@ -0,0 +1,17 @@
+// SDLTransport.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+@import Foundation;
+
+#import "SDLTransportDelegate.h"
+
+@protocol SDLTransport
+
+@property (weak) id<SDLTransportDelegate> delegate;
+
+- (void)connect;
+- (void)disconnect;
+- (void)sendData:(NSData *)dataToSend;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTransportDelegate.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTransportDelegate.h
new file mode 100644
index 000000000..a6da45b3a
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTransportDelegate.h
@@ -0,0 +1,13 @@
+// SDLTransportDelegate.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+
+@protocol SDLTransportDelegate
+
+- (void)onTransportConnected;
+- (void)onTransportDisconnected;
+- (void)onDataReceived:(NSData *)receivedData;
+
+@end \ No newline at end of file
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTriggerSource.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTriggerSource.h
new file mode 100644
index 000000000..e2e3ccfb7
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTriggerSource.h
@@ -0,0 +1,17 @@
+// SDLTriggerSource.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLTriggerSource : SDLEnum {}
+
++(SDLTriggerSource*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLTriggerSource*) MENU;
++(SDLTriggerSource*) VR;
++(SDLTriggerSource*) KEYBOARD;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTriggerSource.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTriggerSource.m
new file mode 100644
index 000000000..d4b580c33
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTriggerSource.m
@@ -0,0 +1,56 @@
+// SDLTriggerSource.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLTriggerSource.h"
+
+SDLTriggerSource* SDLTriggerSource_MENU = nil;
+SDLTriggerSource* SDLTriggerSource_VR = nil;
+SDLTriggerSource* SDLTriggerSource_KEYBOARD = nil;
+
+NSMutableArray* SDLTriggerSource_values = nil;
+
+@implementation SDLTriggerSource
+
++(SDLTriggerSource*) valueOf:(NSString*) value {
+ for (SDLTriggerSource* item in SDLTriggerSource.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLTriggerSource_values == nil) {
+ SDLTriggerSource_values = [[NSMutableArray alloc] initWithObjects:
+ SDLTriggerSource.MENU,
+ SDLTriggerSource.VR,
+ SDLTriggerSource.KEYBOARD,
+ nil];
+ }
+ return SDLTriggerSource_values;
+}
+
++(SDLTriggerSource*) MENU {
+ if (SDLTriggerSource_MENU == nil) {
+ SDLTriggerSource_MENU = [[SDLTriggerSource alloc] initWithValue:@"MENU"];
+ }
+ return SDLTriggerSource_MENU;
+}
+
++(SDLTriggerSource*) VR {
+ if (SDLTriggerSource_VR == nil) {
+ SDLTriggerSource_VR = [[SDLTriggerSource alloc] initWithValue:@"VR"];
+ }
+ return SDLTriggerSource_VR;
+}
+
++(SDLTriggerSource*) KEYBOARD {
+ if (SDLTriggerSource_KEYBOARD == nil) {
+ SDLTriggerSource_KEYBOARD = [[SDLTriggerSource alloc] initWithValue:@"KEYBOARD"];
+ }
+ return SDLTriggerSource_KEYBOARD;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTurn.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTurn.h
new file mode 100644
index 000000000..547fdfa31
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTurn.h
@@ -0,0 +1,18 @@
+// SDLTurn.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLImage.h"
+
+@interface SDLTurn : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSString* navigationText;
+@property(strong) SDLImage* turnIcon;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLTurn.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTurn.m
new file mode 100644
index 000000000..dfe63d36a
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLTurn.m
@@ -0,0 +1,50 @@
+// SDLTurn.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLTurn.h"
+
+#import "SDLNames.h"
+
+@implementation SDLTurn
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setNavigationText:(NSString*) navigationText {
+ if (navigationText != nil) {
+ [store setObject:navigationText forKey:NAMES_navigationText];
+ } else {
+ [store removeObjectForKey:NAMES_navigationText];
+ }
+}
+
+-(NSString*) navigationText {
+ return [store objectForKey:NAMES_navigationText];
+}
+
+-(void) setTurnIcon:(SDLImage*) turnIcon {
+ if (turnIcon != nil) {
+ [store setObject:turnIcon forKey:NAMES_turnIcon];
+ } else {
+ [store removeObjectForKey:NAMES_turnIcon];
+ }
+}
+
+-(SDLImage*) turnIcon {
+ NSObject* obj = [store objectForKey:NAMES_turnIcon];
+ if ([obj isKindOfClass:SDLImage.class]) {
+ return (SDLImage*)obj;
+ } else {
+ return [[SDLImage alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnregisterAppInterface.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnregisterAppInterface.h
new file mode 100644
index 000000000..569ad54e4
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnregisterAppInterface.h
@@ -0,0 +1,13 @@
+// SDLUnregisterAppInterface.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLUnregisterAppInterface : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnregisterAppInterface.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnregisterAppInterface.m
new file mode 100644
index 000000000..0fc9beac0
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnregisterAppInterface.m
@@ -0,0 +1,21 @@
+// SDLUnregisterAppInterface.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLUnregisterAppInterface.h"
+
+#import "SDLNames.h"
+
+@implementation SDLUnregisterAppInterface
+
+-(id) init {
+ if (self = [super initWithName:NAMES_UnregisterAppInterface]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h
new file mode 100644
index 000000000..d3fe69066
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h
@@ -0,0 +1,13 @@
+// SDLUnregisterAppInterfaceResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLUnregisterAppInterfaceResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m
new file mode 100644
index 000000000..3c51484af
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m
@@ -0,0 +1,21 @@
+// SDLUnregisterAppInterfaceResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLUnregisterAppInterfaceResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLUnregisterAppInterfaceResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_UnregisterAppInterface]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeButton.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeButton.h
new file mode 100644
index 000000000..2e62fc216
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeButton.h
@@ -0,0 +1,17 @@
+// SDLUnsubscribeButton.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+#import "SDLButtonName.h"
+
+@interface SDLUnsubscribeButton : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLButtonName* buttonName;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeButton.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeButton.m
new file mode 100644
index 000000000..3c9880cc5
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeButton.m
@@ -0,0 +1,38 @@
+// SDLUnsubscribeButton.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLUnsubscribeButton.h"
+
+#import "SDLNames.h"
+
+@implementation SDLUnsubscribeButton
+
+-(id) init {
+ if (self = [super initWithName:NAMES_UnsubscribeButton]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setButtonName:(SDLButtonName*) buttonName {
+ if (buttonName != nil) {
+ [parameters setObject:buttonName forKey:NAMES_buttonName];
+ } else {
+ [parameters removeObjectForKey:NAMES_buttonName];
+ }
+}
+
+-(SDLButtonName*) buttonName {
+ NSObject* obj = [parameters objectForKey:NAMES_buttonName];
+ if ([obj isKindOfClass:SDLButtonName.class]) {
+ return (SDLButtonName*)obj;
+ } else {
+ return [SDLButtonName valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeButtonResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeButtonResponse.h
new file mode 100644
index 000000000..a2e323dde
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeButtonResponse.h
@@ -0,0 +1,13 @@
+// SDLUnsubscribeButtonResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLUnsubscribeButtonResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeButtonResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeButtonResponse.m
new file mode 100644
index 000000000..188e6c5ee
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeButtonResponse.m
@@ -0,0 +1,21 @@
+// SDLUnsubscribeButtonResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLUnsubscribeButtonResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLUnsubscribeButtonResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_UnsubscribeButton]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeVehicleData.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeVehicleData.h
new file mode 100644
index 000000000..7d882b552
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeVehicleData.h
@@ -0,0 +1,39 @@
+// SDLUnsubscribeVehicleData.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLUnsubscribeVehicleData : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSNumber* gps;
+@property(strong) NSNumber* speed;
+@property(strong) NSNumber* rpm;
+@property(strong) NSNumber* fuelLevel;
+@property(strong) NSNumber* fuelLevel_State;
+@property(strong) NSNumber* instantFuelConsumption;
+@property(strong) NSNumber* externalTemperature;
+@property(strong) NSNumber* prndl;
+@property(strong) NSNumber* tirePressure;
+@property(strong) NSNumber* odometer;
+@property(strong) NSNumber* beltStatus;
+@property(strong) NSNumber* bodyInformation;
+@property(strong) NSNumber* deviceStatus;
+@property(strong) NSNumber* driverBraking;
+@property(strong) NSNumber* wiperStatus;
+@property(strong) NSNumber* headLampStatus;
+@property(strong) NSNumber* engineTorque;
+@property(strong) NSNumber* accPedalPosition;
+@property(strong) NSNumber* steeringWheelAngle;
+@property(strong) NSNumber* eCallInfo;
+@property(strong) NSNumber* airbagStatus;
+@property(strong) NSNumber* emergencyEvent;
+@property(strong) NSNumber* clusterModeStatus;
+@property(strong) NSNumber* myKey;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeVehicleData.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeVehicleData.m
new file mode 100644
index 000000000..a8952bdb1
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeVehicleData.m
@@ -0,0 +1,309 @@
+// SDLUnsubscribeVehicleData.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLUnsubscribeVehicleData.h"
+
+#import "SDLNames.h"
+
+@implementation SDLUnsubscribeVehicleData
+
+-(id) init {
+ if (self = [super initWithName:NAMES_UnsubscribeVehicleData]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setGps:(NSNumber*) gps {
+ if (gps != nil) {
+ [parameters setObject:gps forKey:NAMES_gps];
+ } else {
+ [parameters removeObjectForKey:NAMES_gps];
+ }
+}
+
+-(NSNumber*) gps {
+ return [parameters objectForKey:NAMES_gps];
+}
+
+-(void) setSpeed:(NSNumber*) speed {
+ if (speed != nil) {
+ [parameters setObject:speed forKey:NAMES_speed];
+ } else {
+ [parameters removeObjectForKey:NAMES_speed];
+ }
+}
+
+-(NSNumber*) speed {
+ return [parameters objectForKey:NAMES_speed];
+}
+
+-(void) setRpm:(NSNumber*) rpm {
+ if (rpm != nil) {
+ [parameters setObject:rpm forKey:NAMES_rpm];
+ } else {
+ [parameters removeObjectForKey:NAMES_rpm];
+ }
+}
+
+-(NSNumber*) rpm {
+ return [parameters objectForKey:NAMES_rpm];
+}
+
+-(void) setFuelLevel:(NSNumber*) fuelLevel {
+ if (fuelLevel != nil) {
+ [parameters setObject:fuelLevel forKey:NAMES_fuelLevel];
+ } else {
+ [parameters removeObjectForKey:NAMES_fuelLevel];
+ }
+}
+
+-(NSNumber*) fuelLevel {
+ return [parameters objectForKey:NAMES_fuelLevel];
+}
+
+-(void) setFuelLevel_State:(NSNumber*) fuelLevel_State {
+ if (fuelLevel_State != nil) {
+ [parameters setObject:fuelLevel_State forKey:NAMES_fuelLevel_State];
+ } else {
+ [parameters removeObjectForKey:NAMES_fuelLevel_State];
+ }
+}
+
+-(NSNumber*) fuelLevel_State {
+ return [parameters objectForKey:NAMES_fuelLevel_State];
+}
+
+-(void) setInstantFuelConsumption:(NSNumber*) instantFuelConsumption {
+ if (instantFuelConsumption != nil) {
+ [parameters setObject:instantFuelConsumption forKey:NAMES_instantFuelConsumption];
+ } else {
+ [parameters removeObjectForKey:NAMES_instantFuelConsumption];
+ }
+}
+
+-(NSNumber*) instantFuelConsumption {
+ return [parameters objectForKey:NAMES_instantFuelConsumption];
+}
+
+-(void) setExternalTemperature:(NSNumber*) externalTemperature {
+ if (externalTemperature != nil) {
+ [parameters setObject:externalTemperature forKey:NAMES_externalTemperature];
+ } else {
+ [parameters removeObjectForKey:NAMES_externalTemperature];
+ }
+}
+
+-(NSNumber*) externalTemperature {
+ return [parameters objectForKey:NAMES_externalTemperature];
+}
+
+-(void) setPrndl:(NSNumber*) prndl {
+ if (prndl != nil) {
+ [parameters setObject:prndl forKey:NAMES_prndl];
+ } else {
+ [parameters removeObjectForKey:NAMES_prndl];
+ }
+}
+
+-(NSNumber*) prndl {
+ return [parameters objectForKey:NAMES_prndl];
+}
+
+-(void) setTirePressure:(NSNumber*) tirePressure {
+ if (tirePressure != nil) {
+ [parameters setObject:tirePressure forKey:NAMES_tirePressure];
+ } else {
+ [parameters removeObjectForKey:NAMES_tirePressure];
+ }
+}
+
+-(NSNumber*) tirePressure {
+ return [parameters objectForKey:NAMES_tirePressure];
+}
+
+-(void) setOdometer:(NSNumber*) odometer {
+ if (odometer != nil) {
+ [parameters setObject:odometer forKey:NAMES_odometer];
+ } else {
+ [parameters removeObjectForKey:NAMES_odometer];
+ }
+}
+
+-(NSNumber*) odometer {
+ return [parameters objectForKey:NAMES_odometer];
+}
+
+-(void) setBeltStatus:(NSNumber*) beltStatus {
+ if (beltStatus != nil) {
+ [parameters setObject:beltStatus forKey:NAMES_beltStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_beltStatus];
+ }
+}
+
+-(NSNumber*) beltStatus {
+ return [parameters objectForKey:NAMES_beltStatus];
+}
+
+-(void) setBodyInformation:(NSNumber*) bodyInformation {
+ if (bodyInformation != nil) {
+ [parameters setObject:bodyInformation forKey:NAMES_bodyInformation];
+ } else {
+ [parameters removeObjectForKey:NAMES_bodyInformation];
+ }
+}
+
+-(NSNumber*) bodyInformation {
+ return [parameters objectForKey:NAMES_bodyInformation];
+}
+
+-(void) setDeviceStatus:(NSNumber*) deviceStatus {
+ if (deviceStatus != nil) {
+ [parameters setObject:deviceStatus forKey:NAMES_deviceStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_deviceStatus];
+ }
+}
+
+-(NSNumber*) deviceStatus {
+ return [parameters objectForKey:NAMES_deviceStatus];
+}
+
+-(void) setDriverBraking:(NSNumber*) driverBraking {
+ if (driverBraking != nil) {
+ [parameters setObject:driverBraking forKey:NAMES_driverBraking];
+ } else {
+ [parameters removeObjectForKey:NAMES_driverBraking];
+ }
+}
+
+-(NSNumber*) driverBraking {
+ return [parameters objectForKey:NAMES_driverBraking];
+}
+
+-(void) setWiperStatus:(NSNumber*) wiperStatus {
+ if (wiperStatus != nil) {
+ [parameters setObject:wiperStatus forKey:NAMES_wiperStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_wiperStatus];
+ }
+}
+
+-(NSNumber*) wiperStatus {
+ return [parameters objectForKey:NAMES_wiperStatus];
+}
+
+-(void) setHeadLampStatus:(NSNumber*) headLampStatus {
+ if (headLampStatus != nil) {
+ [parameters setObject:headLampStatus forKey:NAMES_headLampStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_headLampStatus];
+ }
+}
+
+-(NSNumber*) headLampStatus {
+ return [parameters objectForKey:NAMES_headLampStatus];
+}
+
+-(void) setEngineTorque:(NSNumber*) engineTorque {
+ if (engineTorque != nil) {
+ [parameters setObject:engineTorque forKey:NAMES_engineTorque];
+ } else {
+ [parameters removeObjectForKey:NAMES_engineTorque];
+ }
+}
+
+-(NSNumber*) engineTorque {
+ return [parameters objectForKey:NAMES_engineTorque];
+}
+
+-(void) setAccPedalPosition:(NSNumber*) accPedalPosition {
+ if (accPedalPosition != nil) {
+ [parameters setObject:accPedalPosition forKey:NAMES_accPedalPosition];
+ } else {
+ [parameters removeObjectForKey:NAMES_accPedalPosition];
+ }
+}
+
+-(NSNumber*) accPedalPosition {
+ return [parameters objectForKey:NAMES_accPedalPosition];
+}
+
+-(void) setSteeringWheelAngle:(NSNumber*) steeringWheelAngle {
+ if (steeringWheelAngle != nil) {
+ [parameters setObject:steeringWheelAngle forKey:NAMES_steeringWheelAngle];
+ } else {
+ [parameters removeObjectForKey:NAMES_steeringWheelAngle];
+ }
+}
+
+-(NSNumber*) steeringWheelAngle {
+ return [parameters objectForKey:NAMES_steeringWheelAngle];
+}
+
+-(void) setECallInfo:(NSNumber*) eCallInfo {
+ if (eCallInfo != nil) {
+ [parameters setObject:eCallInfo forKey:NAMES_eCallInfo];
+ } else {
+ [parameters removeObjectForKey:NAMES_eCallInfo];
+ }
+}
+
+-(NSNumber*) eCallInfo {
+ return [parameters objectForKey:NAMES_eCallInfo];
+}
+
+-(void) setAirbagStatus:(NSNumber*) airbagStatus {
+ if (airbagStatus != nil) {
+ [parameters setObject:airbagStatus forKey:NAMES_airbagStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_airbagStatus];
+ }
+}
+
+-(NSNumber*) airbagStatus {
+ return [parameters objectForKey:NAMES_airbagStatus];
+}
+
+-(void) setEmergencyEvent:(NSNumber*) emergencyEvent {
+ if (emergencyEvent != nil) {
+ [parameters setObject:emergencyEvent forKey:NAMES_emergencyEvent];
+ } else {
+ [parameters removeObjectForKey:NAMES_emergencyEvent];
+ }
+}
+
+-(NSNumber*) emergencyEvent {
+ return [parameters objectForKey:NAMES_emergencyEvent];
+}
+
+-(void) setClusterModeStatus:(NSNumber*) clusterModeStatus {
+ if (clusterModeStatus != nil) {
+ [parameters setObject:clusterModeStatus forKey:NAMES_clusterModeStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_clusterModeStatus];
+ }
+}
+
+-(NSNumber*) clusterModeStatus {
+ return [parameters objectForKey:NAMES_clusterModeStatus];
+}
+
+-(void) setMyKey:(NSNumber*) myKey {
+ if (myKey != nil) {
+ [parameters setObject:myKey forKey:NAMES_myKey];
+ } else {
+ [parameters removeObjectForKey:NAMES_myKey];
+ }
+}
+
+-(NSNumber*) myKey {
+ return [parameters objectForKey:NAMES_myKey];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h
new file mode 100644
index 000000000..396befcf8
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h
@@ -0,0 +1,40 @@
+// SDLUnsubscribeVehicleDataResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+#import "SDLVehicleDataResult.h"
+
+@interface SDLUnsubscribeVehicleDataResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLVehicleDataResult* gps;
+@property(strong) SDLVehicleDataResult* speed;
+@property(strong) SDLVehicleDataResult* rpm;
+@property(strong) SDLVehicleDataResult* fuelLevel;
+@property(strong) SDLVehicleDataResult* fuelLevel_State;
+@property(strong) SDLVehicleDataResult* instantFuelConsumption;
+@property(strong) SDLVehicleDataResult* externalTemperature;
+@property(strong) SDLVehicleDataResult* prndl;
+@property(strong) SDLVehicleDataResult* tirePressure;
+@property(strong) SDLVehicleDataResult* odometer;
+@property(strong) SDLVehicleDataResult* beltStatus;
+@property(strong) SDLVehicleDataResult* bodyInformation;
+@property(strong) SDLVehicleDataResult* deviceStatus;
+@property(strong) SDLVehicleDataResult* driverBraking;
+@property(strong) SDLVehicleDataResult* wiperStatus;
+@property(strong) SDLVehicleDataResult* headLampStatus;
+@property(strong) SDLVehicleDataResult* engineTorque;
+@property(strong) SDLVehicleDataResult* accPedalPosition;
+@property(strong) SDLVehicleDataResult* steeringWheelAngle;
+@property(strong) SDLVehicleDataResult* eCallInfo;
+@property(strong) SDLVehicleDataResult* airbagStatus;
+@property(strong) SDLVehicleDataResult* emergencyEvent;
+@property(strong) SDLVehicleDataResult* clusterModes;
+@property(strong) SDLVehicleDataResult* myKey;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m
new file mode 100644
index 000000000..82bab7318
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m
@@ -0,0 +1,429 @@
+// SDLUnsubscribeVehicleDataResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLUnsubscribeVehicleDataResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLUnsubscribeVehicleDataResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_UnsubscribeVehicleData]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setGps:(SDLVehicleDataResult*) gps {
+ if (gps != nil) {
+ [parameters setObject:gps forKey:NAMES_gps];
+ } else {
+ [parameters removeObjectForKey:NAMES_gps];
+ }
+}
+
+-(SDLVehicleDataResult*) gps {
+ NSObject* obj = [parameters objectForKey:NAMES_gps];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setSpeed:(SDLVehicleDataResult*) speed {
+ if (speed != nil) {
+ [parameters setObject:speed forKey:NAMES_speed];
+ } else {
+ [parameters removeObjectForKey:NAMES_speed];
+ }
+}
+
+-(SDLVehicleDataResult*) speed {
+ NSObject* obj = [parameters objectForKey:NAMES_speed];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setRpm:(SDLVehicleDataResult*) rpm {
+ if (rpm != nil) {
+ [parameters setObject:rpm forKey:NAMES_rpm];
+ } else {
+ [parameters removeObjectForKey:NAMES_rpm];
+ }
+}
+
+-(SDLVehicleDataResult*) rpm {
+ NSObject* obj = [parameters objectForKey:NAMES_rpm];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setFuelLevel:(SDLVehicleDataResult*) fuelLevel {
+ if (fuelLevel != nil) {
+ [parameters setObject:fuelLevel forKey:NAMES_fuelLevel];
+ } else {
+ [parameters removeObjectForKey:NAMES_fuelLevel];
+ }
+}
+
+-(SDLVehicleDataResult*) fuelLevel {
+ NSObject* obj = [parameters objectForKey:NAMES_fuelLevel];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setFuelLevel_State:(SDLVehicleDataResult*) fuelLevel_State {
+ if (fuelLevel_State != nil) {
+ [parameters setObject:fuelLevel_State forKey:NAMES_fuelLevel_State];
+ } else {
+ [parameters removeObjectForKey:NAMES_fuelLevel_State];
+ }
+}
+
+-(SDLVehicleDataResult*) fuelLevel_State {
+ NSObject* obj = [parameters objectForKey:NAMES_fuelLevel_State];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setInstantFuelConsumption:(SDLVehicleDataResult*) instantFuelConsumption {
+ if (instantFuelConsumption != nil) {
+ [parameters setObject:instantFuelConsumption forKey:NAMES_instantFuelConsumption];
+ } else {
+ [parameters removeObjectForKey:NAMES_instantFuelConsumption];
+ }
+}
+
+-(SDLVehicleDataResult*) instantFuelConsumption {
+ NSObject* obj = [parameters objectForKey:NAMES_instantFuelConsumption];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setExternalTemperature:(SDLVehicleDataResult*) externalTemperature {
+ if (externalTemperature != nil) {
+ [parameters setObject:externalTemperature forKey:NAMES_externalTemperature];
+ } else {
+ [parameters removeObjectForKey:NAMES_externalTemperature];
+ }
+}
+
+-(SDLVehicleDataResult*) externalTemperature {
+ NSObject* obj = [parameters objectForKey:NAMES_externalTemperature];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setPrndl:(SDLVehicleDataResult*) prndl {
+ if (prndl != nil) {
+ [parameters setObject:prndl forKey:NAMES_prndl];
+ } else {
+ [parameters removeObjectForKey:NAMES_prndl];
+ }
+}
+
+-(SDLVehicleDataResult*) prndl {
+ NSObject* obj = [parameters objectForKey:NAMES_prndl];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setTirePressure:(SDLVehicleDataResult*) tirePressure {
+ if (tirePressure != nil) {
+ [parameters setObject:tirePressure forKey:NAMES_tirePressure];
+ } else {
+ [parameters removeObjectForKey:NAMES_tirePressure];
+ }
+}
+
+-(SDLVehicleDataResult*) tirePressure {
+ NSObject* obj = [parameters objectForKey:NAMES_tirePressure];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setOdometer:(SDLVehicleDataResult*) odometer {
+ if (odometer != nil) {
+ [parameters setObject:odometer forKey:NAMES_odometer];
+ } else {
+ [parameters removeObjectForKey:NAMES_odometer];
+ }
+}
+
+-(SDLVehicleDataResult*) odometer {
+ NSObject* obj = [parameters objectForKey:NAMES_odometer];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setBeltStatus:(SDLVehicleDataResult*) beltStatus {
+ if (beltStatus != nil) {
+ [parameters setObject:beltStatus forKey:NAMES_beltStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_beltStatus];
+ }
+}
+
+-(SDLVehicleDataResult*) beltStatus {
+ NSObject* obj = [parameters objectForKey:NAMES_beltStatus];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setBodyInformation:(SDLVehicleDataResult*) bodyInformation {
+ if (bodyInformation != nil) {
+ [parameters setObject:bodyInformation forKey:NAMES_bodyInformation];
+ } else {
+ [parameters removeObjectForKey:NAMES_bodyInformation];
+ }
+}
+
+-(SDLVehicleDataResult*) bodyInformation {
+ NSObject* obj = [parameters objectForKey:NAMES_bodyInformation];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setDeviceStatus:(SDLVehicleDataResult*) deviceStatus {
+ if (deviceStatus != nil) {
+ [parameters setObject:deviceStatus forKey:NAMES_deviceStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_deviceStatus];
+ }
+}
+
+-(SDLVehicleDataResult*) deviceStatus {
+ NSObject* obj = [parameters objectForKey:NAMES_deviceStatus];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setDriverBraking:(SDLVehicleDataResult*) driverBraking {
+ if (driverBraking != nil) {
+ [parameters setObject:driverBraking forKey:NAMES_driverBraking];
+ } else {
+ [parameters removeObjectForKey:NAMES_driverBraking];
+ }
+}
+
+-(SDLVehicleDataResult*) driverBraking {
+ NSObject* obj = [parameters objectForKey:NAMES_driverBraking];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setWiperStatus:(SDLVehicleDataResult*) wiperStatus {
+ if (wiperStatus != nil) {
+ [parameters setObject:wiperStatus forKey:NAMES_wiperStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_wiperStatus];
+ }
+}
+
+-(SDLVehicleDataResult*) wiperStatus {
+ NSObject* obj = [parameters objectForKey:NAMES_wiperStatus];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setHeadLampStatus:(SDLVehicleDataResult*) headLampStatus {
+ if (headLampStatus != nil) {
+ [parameters setObject:headLampStatus forKey:NAMES_headLampStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_headLampStatus];
+ }
+}
+
+-(SDLVehicleDataResult*) headLampStatus {
+ NSObject* obj = [parameters objectForKey:NAMES_headLampStatus];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setEngineTorque:(SDLVehicleDataResult*) engineTorque {
+ if (engineTorque != nil) {
+ [parameters setObject:engineTorque forKey:NAMES_engineTorque];
+ } else {
+ [parameters removeObjectForKey:NAMES_engineTorque];
+ }
+}
+
+-(SDLVehicleDataResult*) engineTorque {
+ NSObject* obj = [parameters objectForKey:NAMES_engineTorque];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setAccPedalPosition:(SDLVehicleDataResult*) accPedalPosition {
+ if (accPedalPosition != nil) {
+ [parameters setObject:accPedalPosition forKey:NAMES_accPedalPosition];
+ } else {
+ [parameters removeObjectForKey:NAMES_accPedalPosition];
+ }
+}
+
+-(SDLVehicleDataResult*) accPedalPosition {
+ NSObject* obj = [parameters objectForKey:NAMES_accPedalPosition];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setSteeringWheelAngle:(SDLVehicleDataResult*) steeringWheelAngle {
+ if (steeringWheelAngle != nil) {
+ [parameters setObject:steeringWheelAngle forKey:NAMES_steeringWheelAngle];
+ } else {
+ [parameters removeObjectForKey:NAMES_steeringWheelAngle];
+ }
+}
+
+-(SDLVehicleDataResult*) steeringWheelAngle {
+ NSObject* obj = [parameters objectForKey:NAMES_steeringWheelAngle];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setECallInfo:(SDLVehicleDataResult*) eCallInfo {
+ if (eCallInfo != nil) {
+ [parameters setObject:eCallInfo forKey:NAMES_eCallInfo];
+ } else {
+ [parameters removeObjectForKey:NAMES_eCallInfo];
+ }
+}
+
+-(SDLVehicleDataResult*) eCallInfo {
+ NSObject* obj = [parameters objectForKey:NAMES_eCallInfo];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setAirbagStatus:(SDLVehicleDataResult*) airbagStatus {
+ if (airbagStatus != nil) {
+ [parameters setObject:airbagStatus forKey:NAMES_airbagStatus];
+ } else {
+ [parameters removeObjectForKey:NAMES_airbagStatus];
+ }
+}
+
+-(SDLVehicleDataResult*) airbagStatus {
+ NSObject* obj = [parameters objectForKey:NAMES_airbagStatus];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setEmergencyEvent:(SDLVehicleDataResult*) emergencyEvent {
+ if (emergencyEvent != nil) {
+ [parameters setObject:emergencyEvent forKey:NAMES_emergencyEvent];
+ } else {
+ [parameters removeObjectForKey:NAMES_emergencyEvent];
+ }
+}
+
+-(SDLVehicleDataResult*) emergencyEvent {
+ NSObject* obj = [parameters objectForKey:NAMES_emergencyEvent];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setClusterModes:(SDLVehicleDataResult*) clusterModes {
+ if (clusterModes != nil) {
+ [parameters setObject:clusterModes forKey:NAMES_clusterModes];
+ } else {
+ [parameters removeObjectForKey:NAMES_clusterModes];
+ }
+}
+
+-(SDLVehicleDataResult*) clusterModes {
+ NSObject* obj = [parameters objectForKey:NAMES_clusterModes];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setMyKey:(SDLVehicleDataResult*) myKey {
+ if (myKey != nil) {
+ [parameters setObject:myKey forKey:NAMES_myKey];
+ } else {
+ [parameters removeObjectForKey:NAMES_myKey];
+ }
+}
+
+-(SDLVehicleDataResult*) myKey {
+ NSObject* obj = [parameters objectForKey:NAMES_myKey];
+ if ([obj isKindOfClass:SDLVehicleDataResult.class]) {
+ return (SDLVehicleDataResult*)obj;
+ } else {
+ return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLUpdateMode.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUpdateMode.h
new file mode 100644
index 000000000..e25b0e4a0
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUpdateMode.h
@@ -0,0 +1,19 @@
+// SDLUpdateMode.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLUpdateMode : SDLEnum {}
+
++(SDLUpdateMode*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLUpdateMode*) COUNTUP;
++(SDLUpdateMode*) COUNTDOWN;
++(SDLUpdateMode*) PAUSE;
++(SDLUpdateMode*) RESUME;
++(SDLUpdateMode*) CLEAR;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLUpdateMode.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUpdateMode.m
new file mode 100644
index 000000000..38bdd9f17
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUpdateMode.m
@@ -0,0 +1,74 @@
+// SDLUpdateMode.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLUpdateMode.h"
+
+SDLUpdateMode* SDLUpdateMode_COUNTUP = nil;
+SDLUpdateMode* SDLUpdateMode_COUNTDOWN = nil;
+SDLUpdateMode* SDLUpdateMode_PAUSE = nil;
+SDLUpdateMode* SDLUpdateMode_RESUME = nil;
+SDLUpdateMode* SDLUpdateMode_CLEAR = nil;
+
+NSMutableArray* SDLUpdateMode_values = nil;
+
+@implementation SDLUpdateMode
+
++(SDLUpdateMode*) valueOf:(NSString*) value {
+ for (SDLUpdateMode* item in SDLUpdateMode.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLUpdateMode_values == nil) {
+ SDLUpdateMode_values = [[NSMutableArray alloc] initWithObjects:
+ SDLUpdateMode.COUNTUP,
+ SDLUpdateMode.COUNTDOWN,
+ SDLUpdateMode.PAUSE,
+ SDLUpdateMode.RESUME,
+ SDLUpdateMode.CLEAR,
+ nil];
+ }
+ return SDLUpdateMode_values;
+}
+
++(SDLUpdateMode*) COUNTUP {
+ if (SDLUpdateMode_COUNTUP == nil) {
+ SDLUpdateMode_COUNTUP = [[SDLUpdateMode alloc] initWithValue:@"COUNTUP"];
+ }
+ return SDLUpdateMode_COUNTUP;
+}
+
++(SDLUpdateMode*) COUNTDOWN {
+ if (SDLUpdateMode_COUNTDOWN == nil) {
+ SDLUpdateMode_COUNTDOWN = [[SDLUpdateMode alloc] initWithValue:@"COUNTDOWN"];
+ }
+ return SDLUpdateMode_COUNTDOWN;
+}
+
++(SDLUpdateMode*) PAUSE {
+ if (SDLUpdateMode_PAUSE == nil) {
+ SDLUpdateMode_PAUSE = [[SDLUpdateMode alloc] initWithValue:@"PAUSE"];
+ }
+ return SDLUpdateMode_PAUSE;
+}
+
++(SDLUpdateMode*) RESUME {
+ if (SDLUpdateMode_RESUME == nil) {
+ SDLUpdateMode_RESUME = [[SDLUpdateMode alloc] initWithValue:@"RESUME"];
+ }
+ return SDLUpdateMode_RESUME;
+}
+
++(SDLUpdateMode*) CLEAR {
+ if (SDLUpdateMode_CLEAR == nil) {
+ SDLUpdateMode_CLEAR = [[SDLUpdateMode alloc] initWithValue:@"CLEAR"];
+ }
+ return SDLUpdateMode_CLEAR;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLUpdateTurnList.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUpdateTurnList.h
new file mode 100644
index 000000000..ecbfbfd82
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUpdateTurnList.h
@@ -0,0 +1,16 @@
+// SDLUpdateTurnList.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCRequest.h"
+
+@interface SDLUpdateTurnList : SDLRPCRequest {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSMutableArray* turnList;
+@property(strong) NSMutableArray* softButtons;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLUpdateTurnList.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUpdateTurnList.m
new file mode 100644
index 000000000..671b61f45
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUpdateTurnList.m
@@ -0,0 +1,65 @@
+// SDLUpdateTurnList.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLUpdateTurnList.h"
+
+#import "SDLNames.h"
+#import "SDLTurn.h"
+#import "SDLSoftButton.h"
+
+@implementation SDLUpdateTurnList
+
+-(id) init {
+ if (self = [super initWithName:NAMES_UpdateTurnList]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setTurnList:(NSMutableArray*) turnList {
+ if (turnList != nil) {
+ [parameters setObject:turnList forKey:NAMES_turnList];
+ } else {
+ [parameters removeObjectForKey:NAMES_turnList];
+ }
+}
+
+-(NSMutableArray*) turnList {
+ NSMutableArray* array = [parameters objectForKey:NAMES_turnList];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLTurn.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLTurn alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+-(void) setSoftButtons:(NSMutableArray*) softButtons {
+ if (softButtons != nil) {
+ [parameters setObject:softButtons forKey:NAMES_softButtons];
+ } else {
+ [parameters removeObjectForKey:NAMES_softButtons];
+ }
+}
+
+-(NSMutableArray*) softButtons {
+ NSMutableArray* array = [parameters objectForKey:NAMES_softButtons];
+ if ([array count] < 1 || [[array objectAtIndex:0] isKindOfClass:SDLSoftButton.class]) {
+ return array;
+ } else {
+ NSMutableArray* newList = [NSMutableArray arrayWithCapacity:[array count]];
+ for (NSDictionary* dict in array) {
+ [newList addObject:[[SDLSoftButton alloc] initWithDictionary:(NSMutableDictionary*)dict]];
+ }
+ return newList;
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLUpdateTurnListResponse.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUpdateTurnListResponse.h
new file mode 100644
index 000000000..b2abc4c87
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUpdateTurnListResponse.h
@@ -0,0 +1,13 @@
+// SDLUpdateTurnListResponse.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCResponse.h"
+
+@interface SDLUpdateTurnListResponse : SDLRPCResponse {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLUpdateTurnListResponse.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUpdateTurnListResponse.m
new file mode 100644
index 000000000..50749c1ff
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLUpdateTurnListResponse.m
@@ -0,0 +1,21 @@
+// SDLUpdateTurnListResponse.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLUpdateTurnListResponse.h"
+
+#import "SDLNames.h"
+
+@implementation SDLUpdateTurnListResponse
+
+-(id) init {
+ if (self = [super initWithName:NAMES_UpdateTurnList]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLV1ProtocolHeader.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLV1ProtocolHeader.h
new file mode 100644
index 000000000..7fb50d757
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLV1ProtocolHeader.h
@@ -0,0 +1,15 @@
+// SDLSmartDeviceLinkV1ProtocolHeader.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLProtocolHeader.h"
+
+@interface SDLV1ProtocolHeader : SDLProtocolHeader
+
+- (id)init;
+- (NSData *)data;
+- (id)copyWithZone:(NSZone *)zone;
+- (void)parse:(NSData *)data;
+- (NSString *)description;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLV1ProtocolHeader.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLV1ProtocolHeader.m
new file mode 100644
index 000000000..d68a3c403
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLV1ProtocolHeader.m
@@ -0,0 +1,78 @@
+// SDLSmartDeviceLinkV1ProtocolHeader.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLV1ProtocolHeader.h"
+
+const int V1PROTOCOL_HEADERSIZE = 8;
+
+@implementation SDLV1ProtocolHeader
+
+- (id)init {
+ if (self = [super init]) {
+ _version = 1;
+ _size = V1PROTOCOL_HEADERSIZE;
+ }
+ return self;
+}
+
+- (NSData *)data {
+ // Assembles the properties in the binary header format
+ Byte headerBytes[V1PROTOCOL_HEADERSIZE] = {0};
+
+ Byte version = (self.version & 0xF) << 4; // first 4 bits
+ Byte compressed = self.compressed?1:0 << 3; // next 1 bit
+ Byte frameType = (self.frameType & 0x7); // last 3 bits
+
+ headerBytes[0] = version | compressed | frameType;
+ headerBytes[1] = self.serviceType;
+ headerBytes[2] = self.frameData;
+ headerBytes[3] = self.sessionID;
+
+ // Need to write the larger ints as big-endian.
+ UInt32 *p = (UInt32 *)&headerBytes[4];
+ *p = CFSwapInt32HostToBig(self.bytesInPayload); // swap the byte order
+
+ // Now put it all in an NSData object.
+ NSData *dataOut = [NSData dataWithBytes:headerBytes length:V1PROTOCOL_HEADERSIZE];
+
+ return dataOut;
+}
+
+- (id)copyWithZone:(NSZone *)zone
+{
+ SDLV1ProtocolHeader *newHeader = [[SDLV1ProtocolHeader allocWithZone: zone] init];
+ newHeader.compressed = self.compressed;
+ newHeader.frameType = self.frameType;
+ newHeader.serviceType = self.serviceType;
+ newHeader.frameData = self.frameData;
+ newHeader.compressed = self.compressed;
+ newHeader.sessionID = self.sessionID;
+
+ return newHeader;
+}
+
+- (void)parse:(NSData *)data {
+ NSAssert(data.length >= _size, @"Error: insufficient data available to parse V1 header.");
+
+ Byte *bytePointer = (Byte *)data.bytes;
+ Byte firstByte = bytePointer[0];
+ self.compressed = ((firstByte & 8) != 0);
+ self.frameType = (firstByte & 7);
+ self.serviceType = bytePointer[1];
+ self.frameData = bytePointer[2];
+ self.sessionID = bytePointer[3];
+
+ UInt32 *uintPointer = (UInt32 *)data.bytes;
+ self.bytesInPayload = CFSwapInt32BigToHost(uintPointer[1]); // Data is coming in in big-endian, so swap it.
+}
+
+- (NSString *)description {
+ NSMutableString* description = [[NSMutableString alloc] init];
+ [description appendFormat:@"Version:%i, compressed:%i, frameType:%i, serviceType:%i, frameData:%i, sessionID:%i, dataSize:%i",
+ self.version, self.compressed, self.frameType, self.serviceType, self.frameData, self.sessionID, (unsigned int)self.bytesInPayload];
+ return description;
+}
+
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLV1ProtocolMessage.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLV1ProtocolMessage.h
new file mode 100644
index 000000000..aef22ee64
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLV1ProtocolMessage.h
@@ -0,0 +1,12 @@
+// SDLSmartDeviceLinkV1ProtocolMessage.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLProtocolMessage.h"
+
+@interface SDLV1ProtocolMessage : SDLProtocolMessage
+
+- (id)initWithHeader:(SDLProtocolHeader*)header andPayload:(NSData *)payload;
+- (NSDictionary *)rpcDictionary;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLV1ProtocolMessage.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLV1ProtocolMessage.m
new file mode 100644
index 000000000..4982ccb2f
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLV1ProtocolMessage.m
@@ -0,0 +1,24 @@
+// SDLSmartDeviceLinkV1ProtocolMessage.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLV1ProtocolMessage.h"
+#import "SDLJsonDecoder.h"
+
+@implementation SDLV1ProtocolMessage
+
+- (id)initWithHeader:(SDLProtocolHeader*)header andPayload:(NSData *)payload {
+ if (self = [self init]) {
+ self.header = header;
+ self.payload = payload;
+ }
+ return self;
+}
+
+- (NSDictionary *)rpcDictionary {
+ NSDictionary* rpcMessageAsDictionary = [[SDLJsonDecoder instance] decode:self.payload];
+ return rpcMessageAsDictionary;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLV2ProtocolHeader.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLV2ProtocolHeader.h
new file mode 100644
index 000000000..9a5f3f200
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLV2ProtocolHeader.h
@@ -0,0 +1,17 @@
+// SDLSmartDeviceLinkV2ProtocolHeader.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLProtocolHeader.h"
+
+@interface SDLV2ProtocolHeader : SDLProtocolHeader
+
+@property (assign) UInt32 messageID;
+
+- (id)init;
+- (id)copyWithZone:(NSZone *)zone;
+- (NSData *)data;
+- (void)parse:(NSData *)data;
+- (NSString *)description;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLV2ProtocolHeader.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLV2ProtocolHeader.m
new file mode 100644
index 000000000..0a0a102a1
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLV2ProtocolHeader.m
@@ -0,0 +1,104 @@
+// SDLSmartDeviceLinkV2ProtocolHeader.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLV2ProtocolHeader.h"
+
+const int V2PROTOCOL_HEADERSIZE = 12;
+
+@implementation SDLV2ProtocolHeader
+
+- (id)init {
+ if (self = [super init]) {
+ _version = 2;
+ _size = V2PROTOCOL_HEADERSIZE;
+ }
+ return self;
+}
+
+- (NSData *)data {
+ // Assembles the properties in the binary header format
+ Byte headerBytes[V2PROTOCOL_HEADERSIZE] = {0};
+
+ Byte version = (self.version & 0xF) << 4; // first 4 bits
+ Byte compressed = self.compressed?1:0 << 3; // next 1 bit
+ Byte frameType = (self.frameType & 0x7); // last 3 bits
+
+ headerBytes[0] = version | compressed | frameType;
+ headerBytes[1] = self.serviceType;
+ headerBytes[2] = self.frameData;
+ headerBytes[3] = self.sessionID;
+
+ // Need to write these ints as big-endian.
+ UInt32 *p = (UInt32 *)&headerBytes[4];
+ *p = CFSwapInt32HostToBig(self.bytesInPayload);
+
+ p = (UInt32 *)&headerBytes[8];
+ *p = CFSwapInt32HostToBig(self.messageID);
+
+ // Now put it all in an NSData object.
+ NSData *dataOut = [NSData dataWithBytes:headerBytes length:V2PROTOCOL_HEADERSIZE];
+
+ return dataOut;
+}
+
+- (id)copyWithZone:(NSZone *)zone
+{
+ SDLV2ProtocolHeader *newHeader = [[SDLV2ProtocolHeader allocWithZone: zone] init];
+ newHeader.compressed = self.compressed;
+ newHeader.frameType = self.frameType;
+ newHeader.serviceType = self.serviceType;
+ newHeader.frameData = self.frameData;
+ newHeader.compressed = self.compressed;
+ newHeader.sessionID = self.sessionID;
+ newHeader.messageID = self.messageID;
+
+ return newHeader;
+}
+
+- (void)parse:(NSData *)data {
+ NSAssert(data.length >= _size, @"Error: insufficient data available to parse V2 header.");
+
+ Byte *bytePointer = (Byte *)data.bytes;
+ Byte firstByte = bytePointer[0];
+ self.compressed = ((firstByte & 8) != 0);
+ self.frameType = (firstByte & 7);
+ self.serviceType = bytePointer[1];
+ self.frameData = bytePointer[2];
+ self.sessionID = bytePointer[3];
+
+ UInt32 *uintPointer = (UInt32 *)data.bytes;
+ self.bytesInPayload = CFSwapInt32BigToHost(uintPointer[1]); // Data is coming in in big-endian, so swap it.
+ self.messageID = CFSwapInt32BigToHost(uintPointer[2]); // Data is coming in in big-endian, so swap it.
+}
+
+- (NSString *)description {
+
+ NSString *frameTypeString = nil;
+ if (self.frameType >= 0 && self.frameType <= 3) {
+ NSArray *frameTypeNames = @[@"Control", @"Single", @"First", @"Consecutive"];
+ frameTypeString = frameTypeNames[self.frameType];
+ }
+
+
+ NSString *frameDataString = nil;
+ if (self.frameType == SDLFrameType_Control) {
+ if (self.frameData >= 0 && self.frameData <=5) {
+ NSArray *controlFrameDataNames = @[@"Heartbeat", @"StartSession", @"StartSessionACK", @"StartSessionNACK", @"EndSession", @"EndSessionNACK"];
+ frameDataString = controlFrameDataNames[self.frameData];
+ } else {
+ frameDataString = @"Reserved";
+ }
+ } else if (self.frameType == SDLFrameType_Single || self.frameType == SDLFrameType_First) {
+ frameDataString = @"Reserved";
+ } else if (self.frameType == SDLFrameType_Consecutive) {
+ frameDataString = @"Frame#";
+ }
+
+ NSMutableString* description = [[NSMutableString alloc] init];
+ [description appendFormat:@"Version:%i, compressed:%i, frameType:%@(%i), serviceType:%i, frameData:%@(%i), sessionID:%i, dataSize:%i, messageID:%i ",
+ self.version, self.compressed, frameTypeString, self.frameType, self.serviceType, frameDataString, self.frameData, self.sessionID, (unsigned int)self.bytesInPayload, (unsigned int)self.messageID];
+ return description;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLV2ProtocolMessage.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLV2ProtocolMessage.h
new file mode 100644
index 000000000..84a95a12c
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLV2ProtocolMessage.h
@@ -0,0 +1,12 @@
+// SDLSmartDeviceLinkV2ProtocolMessage.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLProtocolMessage.h"
+
+@interface SDLV2ProtocolMessage : SDLProtocolMessage
+
+- (id)initWithHeader:(SDLProtocolHeader*)header andPayload:(NSData *)payload;
+- (NSDictionary *)rpcDictionary;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLV2ProtocolMessage.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLV2ProtocolMessage.m
new file mode 100644
index 000000000..d4e310bbe
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLV2ProtocolMessage.m
@@ -0,0 +1,58 @@
+// SDLSmartDeviceLinkV2ProtocolMessage.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLV2ProtocolMessage.h"
+#import "SDLRPCPayload.h"
+#import "SDLJsonDecoder.h"
+#import "SDLFunctionID.h"
+#import "SDLNames.h"
+
+
+@implementation SDLV2ProtocolMessage
+
+- (id)initWithHeader:(SDLProtocolHeader*)header andPayload:(NSData *)payload {
+ if (self = [self init]) {
+ self.header = header;
+ self.payload = payload;
+ }
+ return self;
+}
+
+// Convert RPC payload to dictionary (for consumption by RPC layer)
+- (NSDictionary *)rpcDictionary {
+ // Only applicable to RPCs
+ if (self.header.serviceType != SDLServiceType_RPC) {
+ return nil;
+ }
+
+
+ NSMutableDictionary* rpcMessageAsDictionary = [[NSMutableDictionary alloc] init];
+
+ // Parse the payload as RPC struct
+ SDLRPCPayload *rpcPayload = [SDLRPCPayload rpcPayloadWithData:self.payload];
+
+ // Get the json data from the struct
+ NSDictionary *jsonDictionary = [[SDLJsonDecoder instance] decode:rpcPayload.jsonData];
+
+ // Create the inner dictionary with the RPC properties
+ NSMutableDictionary *innerDictionary = [[NSMutableDictionary alloc] init];
+ NSString *functionName = [[[SDLFunctionID alloc] init] getFunctionName:rpcPayload.functionID];
+ [innerDictionary setObject:functionName forKey:NAMES_operation_name];
+ [innerDictionary setObject:[NSNumber numberWithInt:rpcPayload.correlationID] forKey:NAMES_correlationID];
+ [innerDictionary setObject:jsonDictionary forKey:NAMES_parameters];
+
+ // Store it in the containing dictionary
+ UInt8 rpcType = rpcPayload.rpcType;
+ NSArray *rpcTypeNames = @[NAMES_request, NAMES_response, NAMES_notification];
+ [rpcMessageAsDictionary setObject:innerDictionary forKey:rpcTypeNames[rpcType]];
+
+ // The bulk data also goes in the dictionary
+ if (rpcPayload.binaryData) {
+ [rpcMessageAsDictionary setObject:rpcPayload.binaryData forKey:NAMES_bulkData];
+ }
+
+ return rpcMessageAsDictionary;
+
+}
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataActiveStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataActiveStatus.h
new file mode 100644
index 000000000..a78178c0f
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataActiveStatus.h
@@ -0,0 +1,19 @@
+// SDLVehicleDataActiveStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLVehicleDataActiveStatus : SDLEnum {}
+
++(SDLVehicleDataActiveStatus*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLVehicleDataActiveStatus*) INACTIVE_NOT_CONFIRMED;
++(SDLVehicleDataActiveStatus*) INACTIVE_CONFIRMED;
++(SDLVehicleDataActiveStatus*) ACTIVE_NOT_CONFIRMED;
++(SDLVehicleDataActiveStatus*) ACTIVE_CONFIRMED;
++(SDLVehicleDataActiveStatus*) FAULT;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataActiveStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataActiveStatus.m
new file mode 100644
index 000000000..910c403ca
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataActiveStatus.m
@@ -0,0 +1,74 @@
+// SDLVehicleDataActiveStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLVehicleDataActiveStatus.h"
+
+SDLVehicleDataActiveStatus* SDLVehicleDataActiveStatus_INACTIVE_NOT_CONFIRMED = nil;
+SDLVehicleDataActiveStatus* SDLVehicleDataActiveStatus_INACTIVE_CONFIRMED = nil;
+SDLVehicleDataActiveStatus* SDLVehicleDataActiveStatus_ACTIVE_NOT_CONFIRMED = nil;
+SDLVehicleDataActiveStatus* SDLVehicleDataActiveStatus_ACTIVE_CONFIRMED = nil;
+SDLVehicleDataActiveStatus* SDLVehicleDataActiveStatus_FAULT = nil;
+
+NSMutableArray* SDLVehicleDataActiveStatus_values = nil;
+
+@implementation SDLVehicleDataActiveStatus
+
++(SDLVehicleDataActiveStatus*) valueOf:(NSString*) value {
+ for (SDLVehicleDataActiveStatus* item in SDLVehicleDataActiveStatus.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLVehicleDataActiveStatus_values == nil) {
+ SDLVehicleDataActiveStatus_values = [[NSMutableArray alloc] initWithObjects:
+ SDLVehicleDataActiveStatus.INACTIVE_NOT_CONFIRMED,
+ SDLVehicleDataActiveStatus.INACTIVE_CONFIRMED,
+ SDLVehicleDataActiveStatus.ACTIVE_NOT_CONFIRMED,
+ SDLVehicleDataActiveStatus.ACTIVE_CONFIRMED,
+ SDLVehicleDataActiveStatus.FAULT,
+ nil];
+ }
+ return SDLVehicleDataActiveStatus_values;
+}
+
++(SDLVehicleDataActiveStatus*) INACTIVE_NOT_CONFIRMED {
+ if (SDLVehicleDataActiveStatus_INACTIVE_NOT_CONFIRMED == nil) {
+ SDLVehicleDataActiveStatus_INACTIVE_NOT_CONFIRMED = [[SDLVehicleDataActiveStatus alloc] initWithValue:@"INACTIVE_NOT_CONFIRMED"];
+ }
+ return SDLVehicleDataActiveStatus_INACTIVE_NOT_CONFIRMED;
+}
+
++(SDLVehicleDataActiveStatus*) INACTIVE_CONFIRMED {
+ if (SDLVehicleDataActiveStatus_INACTIVE_CONFIRMED == nil) {
+ SDLVehicleDataActiveStatus_INACTIVE_CONFIRMED = [[SDLVehicleDataActiveStatus alloc] initWithValue:@"INACTIVE_CONFIRMED"];
+ }
+ return SDLVehicleDataActiveStatus_INACTIVE_CONFIRMED;
+}
+
++(SDLVehicleDataActiveStatus*) ACTIVE_NOT_CONFIRMED {
+ if (SDLVehicleDataActiveStatus_ACTIVE_NOT_CONFIRMED == nil) {
+ SDLVehicleDataActiveStatus_ACTIVE_NOT_CONFIRMED = [[SDLVehicleDataActiveStatus alloc] initWithValue:@"ACTIVE_NOT_CONFIRMED"];
+ }
+ return SDLVehicleDataActiveStatus_ACTIVE_NOT_CONFIRMED;
+}
+
++(SDLVehicleDataActiveStatus*) ACTIVE_CONFIRMED {
+ if (SDLVehicleDataActiveStatus_ACTIVE_CONFIRMED == nil) {
+ SDLVehicleDataActiveStatus_ACTIVE_CONFIRMED = [[SDLVehicleDataActiveStatus alloc] initWithValue:@"ACTIVE_CONFIRMED"];
+ }
+ return SDLVehicleDataActiveStatus_ACTIVE_CONFIRMED;
+}
+
++(SDLVehicleDataActiveStatus*) FAULT {
+ if (SDLVehicleDataActiveStatus_FAULT == nil) {
+ SDLVehicleDataActiveStatus_FAULT = [[SDLVehicleDataActiveStatus alloc] initWithValue:@"FAULT"];
+ }
+ return SDLVehicleDataActiveStatus_FAULT;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataEventStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataEventStatus.h
new file mode 100644
index 000000000..f596ec5bd
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataEventStatus.h
@@ -0,0 +1,19 @@
+// SDLVehicleDataEventStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLVehicleDataEventStatus : SDLEnum {}
+
++(SDLVehicleDataEventStatus*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLVehicleDataEventStatus*) NO_EVENT;
++(SDLVehicleDataEventStatus*) _NO;
++(SDLVehicleDataEventStatus*) _YES;
++(SDLVehicleDataEventStatus*) NOT_SUPPORTED;
++(SDLVehicleDataEventStatus*) FAULT;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataEventStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataEventStatus.m
new file mode 100644
index 000000000..4ddbbfb46
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataEventStatus.m
@@ -0,0 +1,74 @@
+// SDLVehicleDataEventStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLVehicleDataEventStatus.h"
+
+SDLVehicleDataEventStatus* SDLVehicleDataEventStatus_NO_EVENT = nil;
+SDLVehicleDataEventStatus* SDLVehicleDataEventStatus_NO = nil;
+SDLVehicleDataEventStatus* SDLVehicleDataEventStatus_YES = nil;
+SDLVehicleDataEventStatus* SDLVehicleDataEventStatus_NOT_SUPPORTED = nil;
+SDLVehicleDataEventStatus* SDLVehicleDataEventStatus_FAULT = nil;
+
+NSMutableArray* SDLVehicleDataEventStatus_values = nil;
+
+@implementation SDLVehicleDataEventStatus
+
++(SDLVehicleDataEventStatus*) valueOf:(NSString*) value {
+ for (SDLVehicleDataEventStatus* item in SDLVehicleDataEventStatus.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLVehicleDataEventStatus_values == nil) {
+ SDLVehicleDataEventStatus_values = [[NSMutableArray alloc] initWithObjects:
+ SDLVehicleDataEventStatus.NO_EVENT,
+ SDLVehicleDataEventStatus._NO,
+ SDLVehicleDataEventStatus._YES,
+ SDLVehicleDataEventStatus.NOT_SUPPORTED,
+ SDLVehicleDataEventStatus.FAULT,
+ nil];
+ }
+ return SDLVehicleDataEventStatus_values;
+}
+
++(SDLVehicleDataEventStatus*) NO_EVENT {
+ if (SDLVehicleDataEventStatus_NO_EVENT == nil) {
+ SDLVehicleDataEventStatus_NO_EVENT = [[SDLVehicleDataEventStatus alloc] initWithValue:@"NO_EVENT"];
+ }
+ return SDLVehicleDataEventStatus_NO_EVENT;
+}
+
++(SDLVehicleDataEventStatus*) _NO {
+ if (SDLVehicleDataEventStatus_NO == nil) {
+ SDLVehicleDataEventStatus_NO = [[SDLVehicleDataEventStatus alloc] initWithValue:@"NO"];
+ }
+ return SDLVehicleDataEventStatus_NO;
+}
+
++(SDLVehicleDataEventStatus*) _YES {
+ if (SDLVehicleDataEventStatus_YES == nil) {
+ SDLVehicleDataEventStatus_YES = [[SDLVehicleDataEventStatus alloc] initWithValue:@"YES"];
+ }
+ return SDLVehicleDataEventStatus_YES;
+}
+
++(SDLVehicleDataEventStatus*) NOT_SUPPORTED {
+ if (SDLVehicleDataEventStatus_NOT_SUPPORTED == nil) {
+ SDLVehicleDataEventStatus_NOT_SUPPORTED = [[SDLVehicleDataEventStatus alloc] initWithValue:@"NOT_SUPPORTED"];
+ }
+ return SDLVehicleDataEventStatus_NOT_SUPPORTED;
+}
+
++(SDLVehicleDataEventStatus*) FAULT {
+ if (SDLVehicleDataEventStatus_FAULT == nil) {
+ SDLVehicleDataEventStatus_FAULT = [[SDLVehicleDataEventStatus alloc] initWithValue:@"FAULT"];
+ }
+ return SDLVehicleDataEventStatus_FAULT;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataNotificationStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataNotificationStatus.h
new file mode 100644
index 000000000..a3e289a9b
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataNotificationStatus.h
@@ -0,0 +1,18 @@
+// SDLVehicleDataNotificationStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLVehicleDataNotificationStatus : SDLEnum {}
+
++(SDLVehicleDataNotificationStatus*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLVehicleDataNotificationStatus*) NOT_SUPPORTED;
++(SDLVehicleDataNotificationStatus*) NORMAL;
++(SDLVehicleDataNotificationStatus*) ACTIVE;
++(SDLVehicleDataNotificationStatus*) NOT_USED;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataNotificationStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataNotificationStatus.m
new file mode 100644
index 000000000..51b3b85d9
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataNotificationStatus.m
@@ -0,0 +1,65 @@
+// SDLVehicleDataNotificationStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLVehicleDataNotificationStatus.h"
+
+SDLVehicleDataNotificationStatus* SDLVehicleDataNotificationStatus_NOT_SUPPORTED = nil;
+SDLVehicleDataNotificationStatus* SDLVehicleDataNotificationStatus_NORMAL = nil;
+SDLVehicleDataNotificationStatus* SDLVehicleDataNotificationStatus_ACTIVE = nil;
+SDLVehicleDataNotificationStatus* SDLVehicleDataNotificationStatus_NOT_USED = nil;
+
+NSMutableArray* SDLVehicleDataNotificationStatus_values = nil;
+
+@implementation SDLVehicleDataNotificationStatus
+
++(SDLVehicleDataNotificationStatus*) valueOf:(NSString*) value {
+ for (SDLVehicleDataNotificationStatus* item in SDLVehicleDataNotificationStatus.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLVehicleDataNotificationStatus_values == nil) {
+ SDLVehicleDataNotificationStatus_values = [[NSMutableArray alloc] initWithObjects:
+ SDLVehicleDataNotificationStatus.NOT_SUPPORTED,
+ SDLVehicleDataNotificationStatus.NORMAL,
+ SDLVehicleDataNotificationStatus.ACTIVE,
+ SDLVehicleDataNotificationStatus.NOT_USED,
+ nil];
+ }
+ return SDLVehicleDataNotificationStatus_values;
+}
+
++(SDLVehicleDataNotificationStatus*) NOT_SUPPORTED {
+ if (SDLVehicleDataNotificationStatus_NOT_SUPPORTED == nil) {
+ SDLVehicleDataNotificationStatus_NOT_SUPPORTED = [[SDLVehicleDataNotificationStatus alloc] initWithValue:@"NOT_SUPPORTED"];
+ }
+ return SDLVehicleDataNotificationStatus_NOT_SUPPORTED;
+}
+
++(SDLVehicleDataNotificationStatus*) NORMAL {
+ if (SDLVehicleDataNotificationStatus_NORMAL == nil) {
+ SDLVehicleDataNotificationStatus_NORMAL = [[SDLVehicleDataNotificationStatus alloc] initWithValue:@"NORMAL"];
+ }
+ return SDLVehicleDataNotificationStatus_NORMAL;
+}
+
++(SDLVehicleDataNotificationStatus*) ACTIVE {
+ if (SDLVehicleDataNotificationStatus_ACTIVE == nil) {
+ SDLVehicleDataNotificationStatus_ACTIVE = [[SDLVehicleDataNotificationStatus alloc] initWithValue:@"ACTIVE"];
+ }
+ return SDLVehicleDataNotificationStatus_ACTIVE;
+}
+
++(SDLVehicleDataNotificationStatus*) NOT_USED {
+ if (SDLVehicleDataNotificationStatus_NOT_USED == nil) {
+ SDLVehicleDataNotificationStatus_NOT_USED = [[SDLVehicleDataNotificationStatus alloc] initWithValue:@"NOT_USED"];
+ }
+ return SDLVehicleDataNotificationStatus_NOT_USED;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataResult.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataResult.h
new file mode 100644
index 000000000..eb013ebd6
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataResult.h
@@ -0,0 +1,19 @@
+// SDLVehicleDataResult.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLVehicleDataType.h"
+#import "SDLVehicleDataResultCode.h"
+
+@interface SDLVehicleDataResult : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) SDLVehicleDataType* dataType;
+@property(strong) SDLVehicleDataResultCode* resultCode;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataResult.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataResult.m
new file mode 100644
index 000000000..12a02219c
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataResult.m
@@ -0,0 +1,55 @@
+// SDLVehicleDataResult.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLVehicleDataResult.h"
+
+#import "SDLNames.h"
+
+@implementation SDLVehicleDataResult
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setDataType:(SDLVehicleDataType*) dataType {
+ if (dataType != nil) {
+ [store setObject:dataType forKey:NAMES_dataType];
+ } else {
+ [store removeObjectForKey:NAMES_dataType];
+ }
+}
+
+-(SDLVehicleDataType*) dataType {
+ NSObject* obj = [store objectForKey:NAMES_dataType];
+ if ([obj isKindOfClass:SDLVehicleDataType.class]) {
+ return (SDLVehicleDataType*)obj;
+ } else {
+ return [SDLVehicleDataType valueOf:(NSString*)obj];
+ }
+}
+
+-(void) setResultCode:(SDLVehicleDataResultCode*) resultCode {
+ if (resultCode != nil) {
+ [store setObject:resultCode forKey:NAMES_resultCode];
+ } else {
+ [store removeObjectForKey:NAMES_resultCode];
+ }
+}
+
+-(SDLVehicleDataResultCode*) resultCode {
+ NSObject* obj = [store objectForKey:NAMES_resultCode];
+ if ([obj isKindOfClass:SDLVehicleDataResultCode.class]) {
+ return (SDLVehicleDataResultCode*)obj;
+ } else {
+ return [SDLVehicleDataResultCode valueOf:(NSString*)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataResultCode.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataResultCode.h
new file mode 100644
index 000000000..4af9ef12f
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataResultCode.h
@@ -0,0 +1,23 @@
+// SDLVehicleDataResultCode.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLVehicleDataResultCode : SDLEnum {}
+
++(SDLVehicleDataResultCode*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLVehicleDataResultCode*) SUCCESS;
++(SDLVehicleDataResultCode*) TRUNCATED_DATA;
++(SDLVehicleDataResultCode*) DISALLOWED;
++(SDLVehicleDataResultCode*) USER_DISALLOWED;
++(SDLVehicleDataResultCode*) INVALID_ID;
++(SDLVehicleDataResultCode*) VEHICLE_DATA_NOT_AVAILABLE;
++(SDLVehicleDataResultCode*) DATA_ALREADY_SUBSCRIBED;
++(SDLVehicleDataResultCode*) DATA_NOT_SUBSCRIBED;
++(SDLVehicleDataResultCode*) IGNORED;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataResultCode.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataResultCode.m
new file mode 100644
index 000000000..7dadb2057
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataResultCode.m
@@ -0,0 +1,110 @@
+// SDLVehicleDataResultCode.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLVehicleDataResultCode.h"
+
+SDLVehicleDataResultCode* SDLVehicleDataResultCode_SUCCESS = nil;
+SDLVehicleDataResultCode* SDLVehicleDataResultCode_TRUNCATED_DATA = nil;
+SDLVehicleDataResultCode* SDLVehicleDataResultCode_DISALLOWED = nil;
+SDLVehicleDataResultCode* SDLVehicleDataResultCode_USER_DISALLOWED = nil;
+SDLVehicleDataResultCode* SDLVehicleDataResultCode_INVALID_ID = nil;
+SDLVehicleDataResultCode* SDLVehicleDataResultCode_VEHICLE_DATA_NOT_AVAILABLE = nil;
+SDLVehicleDataResultCode* SDLVehicleDataResultCode_DATA_ALREADY_SUBSCRIBED = nil;
+SDLVehicleDataResultCode* SDLVehicleDataResultCode_DATA_NOT_SUBSCRIBED = nil;
+SDLVehicleDataResultCode* SDLVehicleDataResultCode_IGNORED = nil;
+
+NSMutableArray* SDLVehicleDataResultCode_values = nil;
+
+@implementation SDLVehicleDataResultCode
+
++(SDLVehicleDataResultCode*) valueOf:(NSString*) value {
+ for (SDLVehicleDataResultCode* item in SDLVehicleDataResultCode.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLVehicleDataResultCode_values == nil) {
+ SDLVehicleDataResultCode_values = [[NSMutableArray alloc] initWithObjects:
+ SDLVehicleDataResultCode.SUCCESS,
+ SDLVehicleDataResultCode.TRUNCATED_DATA,
+ SDLVehicleDataResultCode.DISALLOWED,
+ SDLVehicleDataResultCode.USER_DISALLOWED,
+ SDLVehicleDataResultCode.INVALID_ID,
+ SDLVehicleDataResultCode.VEHICLE_DATA_NOT_AVAILABLE,
+ SDLVehicleDataResultCode.DATA_ALREADY_SUBSCRIBED,
+ SDLVehicleDataResultCode.DATA_NOT_SUBSCRIBED,
+ SDLVehicleDataResultCode.IGNORED,
+ nil];
+ }
+ return SDLVehicleDataResultCode_values;
+}
+
++(SDLVehicleDataResultCode*) SUCCESS {
+ if (SDLVehicleDataResultCode_SUCCESS == nil) {
+ SDLVehicleDataResultCode_SUCCESS = [[SDLVehicleDataResultCode alloc] initWithValue:@"SUCCESS"];
+ }
+ return SDLVehicleDataResultCode_SUCCESS;
+}
+
++(SDLVehicleDataResultCode*) TRUNCATED_DATA {
+ if (SDLVehicleDataResultCode_TRUNCATED_DATA == nil) {
+ SDLVehicleDataResultCode_TRUNCATED_DATA = [[SDLVehicleDataResultCode alloc] initWithValue:@"TRUNCATED_DATA"];
+ }
+ return SDLVehicleDataResultCode_TRUNCATED_DATA;
+}
+
++(SDLVehicleDataResultCode*) DISALLOWED {
+ if (SDLVehicleDataResultCode_DISALLOWED == nil) {
+ SDLVehicleDataResultCode_DISALLOWED = [[SDLVehicleDataResultCode alloc] initWithValue:@"DISALLOWED"];
+ }
+ return SDLVehicleDataResultCode_DISALLOWED;
+}
+
++(SDLVehicleDataResultCode*) USER_DISALLOWED {
+ if (SDLVehicleDataResultCode_USER_DISALLOWED == nil) {
+ SDLVehicleDataResultCode_USER_DISALLOWED = [[SDLVehicleDataResultCode alloc] initWithValue:@"USER_DISALLOWED"];
+ }
+ return SDLVehicleDataResultCode_USER_DISALLOWED;
+}
+
++(SDLVehicleDataResultCode*) INVALID_ID {
+ if (SDLVehicleDataResultCode_INVALID_ID == nil) {
+ SDLVehicleDataResultCode_INVALID_ID = [[SDLVehicleDataResultCode alloc] initWithValue:@"INVALID_ID"];
+ }
+ return SDLVehicleDataResultCode_INVALID_ID;
+}
+
++(SDLVehicleDataResultCode*) VEHICLE_DATA_NOT_AVAILABLE {
+ if (SDLVehicleDataResultCode_VEHICLE_DATA_NOT_AVAILABLE == nil) {
+ SDLVehicleDataResultCode_VEHICLE_DATA_NOT_AVAILABLE = [[SDLVehicleDataResultCode alloc] initWithValue:@"VEHICLE_DATA_NOT_AVAILABLE"];
+ }
+ return SDLVehicleDataResultCode_VEHICLE_DATA_NOT_AVAILABLE;
+}
+
++(SDLVehicleDataResultCode*) DATA_ALREADY_SUBSCRIBED {
+ if (SDLVehicleDataResultCode_DATA_ALREADY_SUBSCRIBED == nil) {
+ SDLVehicleDataResultCode_DATA_ALREADY_SUBSCRIBED = [[SDLVehicleDataResultCode alloc] initWithValue:@"DATA_ALREADY_SUBSCRIBED"];
+ }
+ return SDLVehicleDataResultCode_DATA_ALREADY_SUBSCRIBED;
+}
+
++(SDLVehicleDataResultCode*) DATA_NOT_SUBSCRIBED {
+ if (SDLVehicleDataResultCode_DATA_NOT_SUBSCRIBED == nil) {
+ SDLVehicleDataResultCode_DATA_NOT_SUBSCRIBED = [[SDLVehicleDataResultCode alloc] initWithValue:@"DATA_NOT_SUBSCRIBED"];
+ }
+ return SDLVehicleDataResultCode_DATA_NOT_SUBSCRIBED;
+}
+
++(SDLVehicleDataResultCode*) IGNORED {
+ if (SDLVehicleDataResultCode_IGNORED == nil) {
+ SDLVehicleDataResultCode_IGNORED = [[SDLVehicleDataResultCode alloc] initWithValue:@"IGNORED"];
+ }
+ return SDLVehicleDataResultCode_IGNORED;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataStatus.h
new file mode 100644
index 000000000..421402ae1
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataStatus.h
@@ -0,0 +1,17 @@
+// SDLVehicleDataStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLVehicleDataStatus : SDLEnum {}
+
++(SDLVehicleDataStatus*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLVehicleDataStatus*) NO_DATA_EXISTS;
++(SDLVehicleDataStatus*) OFF;
++(SDLVehicleDataStatus*) ON;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataStatus.m
new file mode 100644
index 000000000..5b7bec930
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataStatus.m
@@ -0,0 +1,56 @@
+// SDLVehicleDataStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLVehicleDataStatus.h"
+
+SDLVehicleDataStatus* SDLVehicleDataStatus_NO_DATA_EXISTS = nil;
+SDLVehicleDataStatus* SDLVehicleDataStatus_OFF = nil;
+SDLVehicleDataStatus* SDLVehicleDataStatus_ON = nil;
+
+NSMutableArray* SDLVehicleDataStatus_values = nil;
+
+@implementation SDLVehicleDataStatus
+
++(SDLVehicleDataStatus*) valueOf:(NSString*) value {
+ for (SDLVehicleDataStatus* item in SDLVehicleDataStatus.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLVehicleDataStatus_values == nil) {
+ SDLVehicleDataStatus_values = [[NSMutableArray alloc] initWithObjects:
+ SDLVehicleDataStatus.NO_DATA_EXISTS,
+ SDLVehicleDataStatus.OFF,
+ SDLVehicleDataStatus.ON,
+ nil];
+ }
+ return SDLVehicleDataStatus_values;
+}
+
++(SDLVehicleDataStatus*) NO_DATA_EXISTS {
+ if (SDLVehicleDataStatus_NO_DATA_EXISTS == nil) {
+ SDLVehicleDataStatus_NO_DATA_EXISTS = [[SDLVehicleDataStatus alloc] initWithValue:@"NO_DATA_EXISTS"];
+ }
+ return SDLVehicleDataStatus_NO_DATA_EXISTS;
+}
+
++(SDLVehicleDataStatus*) OFF {
+ if (SDLVehicleDataStatus_OFF == nil) {
+ SDLVehicleDataStatus_OFF = [[SDLVehicleDataStatus alloc] initWithValue:@"OFF"];
+ }
+ return SDLVehicleDataStatus_OFF;
+}
+
++(SDLVehicleDataStatus*) ON {
+ if (SDLVehicleDataStatus_ON == nil) {
+ SDLVehicleDataStatus_ON = [[SDLVehicleDataStatus alloc] initWithValue:@"ON"];
+ }
+ return SDLVehicleDataStatus_ON;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataType.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataType.h
new file mode 100644
index 000000000..44246543b
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataType.h
@@ -0,0 +1,40 @@
+// SDLVehicleDataType.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLVehicleDataType : SDLEnum {}
+
++(SDLVehicleDataType*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLVehicleDataType*) VEHICLEDATA_GPS;
++(SDLVehicleDataType*) VEHICLEDATA_SPEED;
++(SDLVehicleDataType*) VEHICLEDATA_RPM;
++(SDLVehicleDataType*) VEHICLEDATA_FUELLEVEL;
++(SDLVehicleDataType*) VEHICLEDATA_FUELLEVEL_STATE;
++(SDLVehicleDataType*) VEHICLEDATA_FUELCONSUMPTION;
++(SDLVehicleDataType*) VEHICLEDATA_EXTERNTEMP;
++(SDLVehicleDataType*) VEHICLEDATA_VIN;
++(SDLVehicleDataType*) VEHICLEDATA_PRNDL;
++(SDLVehicleDataType*) VEHICLEDATA_TIREPRESSURE;
++(SDLVehicleDataType*) VEHICLEDATA_ODOMETER;
++(SDLVehicleDataType*) VEHICLEDATA_BELTSTATUS;
++(SDLVehicleDataType*) VEHICLEDATA_BODYINFO;
++(SDLVehicleDataType*) VEHICLEDATA_DEVICESTATUS;
++(SDLVehicleDataType*) VEHICLEDATA_ECALLINFO;
++(SDLVehicleDataType*) VEHICLEDATA_AIRBAGSTATUS;
++(SDLVehicleDataType*) VEHICLEDATA_EMERGENCYEVENT;
++(SDLVehicleDataType*) VEHICLEDATA_CLUSTERMODESTATUS;
++(SDLVehicleDataType*) VEHICLEDATA_MYKEY;
++(SDLVehicleDataType*) VEHICLEDATA_BRAKING;
++(SDLVehicleDataType*) VEHICLEDATA_WIPERSTATUS;
++(SDLVehicleDataType*) VEHICLEDATA_HEADLAMPSTATUS;
++(SDLVehicleDataType*) VEHICLEDATA_BATTVOLTAGE;
++(SDLVehicleDataType*) VEHICLEDATA_ENGINETORQUE;
++(SDLVehicleDataType*) VEHICLEDATA_ACCPEDAL;
++(SDLVehicleDataType*) VEHICLEDATA_STEERINGWHEEL;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataType.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataType.m
new file mode 100644
index 000000000..24120d41e
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleDataType.m
@@ -0,0 +1,263 @@
+// SDLVehicleDataType.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLVehicleDataType.h"
+
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_GPS = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_SPEED = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_RPM = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_FUELLEVEL = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_FUELLEVEL_STATE = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_FUELCONSUMPTION = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_EXTERNTEMP = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_VIN = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_PRNDL = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_TIREPRESSURE = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_ODOMETER = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_BELTSTATUS = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_BODYINFO = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_DEVICESTATUS = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_ECALLINFO = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_AIRBAGSTATUS = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_EMERGENCYEVENT = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_CLUSTERMODESTATUS = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_MYKEY = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_BRAKING = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_WIPERSTATUS = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_HEADLAMPSTATUS = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_BATTVOLTAGE = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_ENGINETORQUE = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_ACCPEDAL = nil;
+SDLVehicleDataType* SDLVehicleDataType_VEHICLEDATA_STEERINGWHEEL = nil;
+
+NSMutableArray* SDLVehicleDataType_values = nil;
+
+@implementation SDLVehicleDataType
+
++(SDLVehicleDataType*) valueOf:(NSString*) value {
+ for (SDLVehicleDataType* item in SDLVehicleDataType.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLVehicleDataType_values == nil) {
+ SDLVehicleDataType_values = [[NSMutableArray alloc] initWithObjects:
+ SDLVehicleDataType.VEHICLEDATA_GPS,
+ SDLVehicleDataType.VEHICLEDATA_SPEED,
+ SDLVehicleDataType.VEHICLEDATA_RPM,
+ SDLVehicleDataType.VEHICLEDATA_FUELLEVEL,
+ SDLVehicleDataType.VEHICLEDATA_FUELLEVEL_STATE,
+ SDLVehicleDataType.VEHICLEDATA_FUELCONSUMPTION,
+ SDLVehicleDataType.VEHICLEDATA_EXTERNTEMP,
+ SDLVehicleDataType.VEHICLEDATA_VIN,
+ SDLVehicleDataType.VEHICLEDATA_PRNDL,
+ SDLVehicleDataType.VEHICLEDATA_TIREPRESSURE,
+ SDLVehicleDataType.VEHICLEDATA_ODOMETER,
+ SDLVehicleDataType.VEHICLEDATA_BELTSTATUS,
+ SDLVehicleDataType.VEHICLEDATA_BODYINFO,
+ SDLVehicleDataType.VEHICLEDATA_DEVICESTATUS,
+ SDLVehicleDataType.VEHICLEDATA_ECALLINFO,
+ SDLVehicleDataType.VEHICLEDATA_AIRBAGSTATUS,
+ SDLVehicleDataType.VEHICLEDATA_EMERGENCYEVENT,
+ SDLVehicleDataType.VEHICLEDATA_CLUSTERMODESTATUS,
+ SDLVehicleDataType.VEHICLEDATA_MYKEY,
+ SDLVehicleDataType.VEHICLEDATA_BRAKING,
+ SDLVehicleDataType.VEHICLEDATA_WIPERSTATUS,
+ SDLVehicleDataType.VEHICLEDATA_HEADLAMPSTATUS,
+ SDLVehicleDataType.VEHICLEDATA_BATTVOLTAGE,
+ SDLVehicleDataType.VEHICLEDATA_ENGINETORQUE,
+ SDLVehicleDataType.VEHICLEDATA_ACCPEDAL,
+ SDLVehicleDataType.VEHICLEDATA_STEERINGWHEEL,
+ nil];
+ }
+ return SDLVehicleDataType_values;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_GPS {
+ if (SDLVehicleDataType_VEHICLEDATA_GPS == nil) {
+ SDLVehicleDataType_VEHICLEDATA_GPS = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_GPS"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_GPS;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_SPEED {
+ if (SDLVehicleDataType_VEHICLEDATA_SPEED == nil) {
+ SDLVehicleDataType_VEHICLEDATA_SPEED = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_SPEED"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_SPEED;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_RPM {
+ if (SDLVehicleDataType_VEHICLEDATA_RPM == nil) {
+ SDLVehicleDataType_VEHICLEDATA_RPM = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_RPM"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_RPM;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_FUELLEVEL {
+ if (SDLVehicleDataType_VEHICLEDATA_FUELLEVEL == nil) {
+ SDLVehicleDataType_VEHICLEDATA_FUELLEVEL = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_FUELLEVEL"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_FUELLEVEL;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_FUELLEVEL_STATE {
+ if (SDLVehicleDataType_VEHICLEDATA_FUELLEVEL_STATE == nil) {
+ SDLVehicleDataType_VEHICLEDATA_FUELLEVEL_STATE = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_FUELLEVEL_STATE"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_FUELLEVEL_STATE;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_FUELCONSUMPTION {
+ if (SDLVehicleDataType_VEHICLEDATA_FUELCONSUMPTION == nil) {
+ SDLVehicleDataType_VEHICLEDATA_FUELCONSUMPTION = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_FUELCONSUMPTION"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_FUELCONSUMPTION;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_EXTERNTEMP {
+ if (SDLVehicleDataType_VEHICLEDATA_EXTERNTEMP == nil) {
+ SDLVehicleDataType_VEHICLEDATA_EXTERNTEMP = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_EXTERNTEMP"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_EXTERNTEMP;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_VIN {
+ if (SDLVehicleDataType_VEHICLEDATA_VIN == nil) {
+ SDLVehicleDataType_VEHICLEDATA_VIN = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_VIN"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_VIN;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_PRNDL {
+ if (SDLVehicleDataType_VEHICLEDATA_PRNDL == nil) {
+ SDLVehicleDataType_VEHICLEDATA_PRNDL = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_PRNDL"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_PRNDL;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_TIREPRESSURE {
+ if (SDLVehicleDataType_VEHICLEDATA_TIREPRESSURE == nil) {
+ SDLVehicleDataType_VEHICLEDATA_TIREPRESSURE = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_TIREPRESSURE"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_TIREPRESSURE;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_ODOMETER {
+ if (SDLVehicleDataType_VEHICLEDATA_ODOMETER == nil) {
+ SDLVehicleDataType_VEHICLEDATA_ODOMETER = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_ODOMETER"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_ODOMETER;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_BELTSTATUS {
+ if (SDLVehicleDataType_VEHICLEDATA_BELTSTATUS == nil) {
+ SDLVehicleDataType_VEHICLEDATA_BELTSTATUS = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_BELTSTATUS"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_BELTSTATUS;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_BODYINFO {
+ if (SDLVehicleDataType_VEHICLEDATA_BODYINFO == nil) {
+ SDLVehicleDataType_VEHICLEDATA_BODYINFO = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_BODYINFO"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_BODYINFO;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_DEVICESTATUS {
+ if (SDLVehicleDataType_VEHICLEDATA_DEVICESTATUS == nil) {
+ SDLVehicleDataType_VEHICLEDATA_DEVICESTATUS = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_DEVICESTATUS"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_DEVICESTATUS;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_ECALLINFO {
+ if (SDLVehicleDataType_VEHICLEDATA_ECALLINFO == nil) {
+ SDLVehicleDataType_VEHICLEDATA_ECALLINFO = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_ECALLINFO"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_ECALLINFO;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_AIRBAGSTATUS {
+ if (SDLVehicleDataType_VEHICLEDATA_AIRBAGSTATUS == nil) {
+ SDLVehicleDataType_VEHICLEDATA_AIRBAGSTATUS = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_AIRBAGSTATUS"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_AIRBAGSTATUS;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_EMERGENCYEVENT {
+ if (SDLVehicleDataType_VEHICLEDATA_EMERGENCYEVENT == nil) {
+ SDLVehicleDataType_VEHICLEDATA_EMERGENCYEVENT = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_EMERGENCYEVENT"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_EMERGENCYEVENT;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_CLUSTERMODESTATUS {
+ if (SDLVehicleDataType_VEHICLEDATA_CLUSTERMODESTATUS == nil) {
+ SDLVehicleDataType_VEHICLEDATA_CLUSTERMODESTATUS = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_CLUSTERMODESTATUS"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_CLUSTERMODESTATUS;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_MYKEY {
+ if (SDLVehicleDataType_VEHICLEDATA_MYKEY == nil) {
+ SDLVehicleDataType_VEHICLEDATA_MYKEY = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_MYKEY"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_MYKEY;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_BRAKING {
+ if (SDLVehicleDataType_VEHICLEDATA_BRAKING == nil) {
+ SDLVehicleDataType_VEHICLEDATA_BRAKING = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_BRAKING"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_BRAKING;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_WIPERSTATUS {
+ if (SDLVehicleDataType_VEHICLEDATA_WIPERSTATUS == nil) {
+ SDLVehicleDataType_VEHICLEDATA_WIPERSTATUS = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_WIPERSTATUS"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_WIPERSTATUS;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_HEADLAMPSTATUS {
+ if (SDLVehicleDataType_VEHICLEDATA_HEADLAMPSTATUS == nil) {
+ SDLVehicleDataType_VEHICLEDATA_HEADLAMPSTATUS = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_HEADLAMPSTATUS"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_HEADLAMPSTATUS;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_BATTVOLTAGE {
+ if (SDLVehicleDataType_VEHICLEDATA_BATTVOLTAGE == nil) {
+ SDLVehicleDataType_VEHICLEDATA_BATTVOLTAGE = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_BATTVOLTAGE"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_BATTVOLTAGE;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_ENGINETORQUE {
+ if (SDLVehicleDataType_VEHICLEDATA_ENGINETORQUE == nil) {
+ SDLVehicleDataType_VEHICLEDATA_ENGINETORQUE = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_ENGINETORQUE"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_ENGINETORQUE;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_ACCPEDAL {
+ if (SDLVehicleDataType_VEHICLEDATA_ACCPEDAL == nil) {
+ SDLVehicleDataType_VEHICLEDATA_ACCPEDAL = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_ACCPEDAL"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_ACCPEDAL;
+}
+
++(SDLVehicleDataType*) VEHICLEDATA_STEERINGWHEEL {
+ if (SDLVehicleDataType_VEHICLEDATA_STEERINGWHEEL == nil) {
+ SDLVehicleDataType_VEHICLEDATA_STEERINGWHEEL = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_STEERINGWHEEL"];
+ }
+ return SDLVehicleDataType_VEHICLEDATA_STEERINGWHEEL;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleType.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleType.h
new file mode 100644
index 000000000..96ae49a05
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleType.h
@@ -0,0 +1,18 @@
+// SDLVehicleType.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+@interface SDLVehicleType : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSString* make;
+@property(strong) NSString* model;
+@property(strong) NSString* modelYear;
+@property(strong) NSString* trim;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleType.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleType.m
new file mode 100644
index 000000000..846e4ab5c
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVehicleType.m
@@ -0,0 +1,69 @@
+// SDLVehicleType.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLVehicleType.h"
+
+#import "SDLNames.h"
+
+@implementation SDLVehicleType
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setMake:(NSString*) make {
+ if (make != nil) {
+ [store setObject:make forKey:NAMES_make];
+ } else {
+ [store removeObjectForKey:NAMES_make];
+ }
+}
+
+-(NSString*) make {
+ return [store objectForKey:NAMES_make];
+}
+
+-(void) setModel:(NSString*) model {
+ if (model != nil) {
+ [store setObject:model forKey:NAMES_model];
+ } else {
+ [store removeObjectForKey:NAMES_model];
+ }
+}
+
+-(NSString*) model {
+ return [store objectForKey:NAMES_model];
+}
+
+-(void) setModelYear:(NSString*) modelYear {
+ if (modelYear != nil) {
+ [store setObject:modelYear forKey:NAMES_modelYear];
+ } else {
+ [store removeObjectForKey:NAMES_modelYear];
+ }
+}
+
+-(NSString*) modelYear {
+ return [store objectForKey:NAMES_modelYear];
+}
+
+-(void) setTrim:(NSString*) trim {
+ if (trim != nil) {
+ [store setObject:trim forKey:NAMES_trim];
+ } else {
+ [store removeObjectForKey:NAMES_trim];
+ }
+}
+
+-(NSString*) trim {
+ return [store objectForKey:NAMES_trim];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLVrCapabilities.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVrCapabilities.h
new file mode 100644
index 000000000..9a392ad6d
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVrCapabilities.h
@@ -0,0 +1,15 @@
+// SDLVrCapabilities.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLVrCapabilities : SDLEnum {}
+
++(SDLVrCapabilities*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLVrCapabilities*) TEXT;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLVrCapabilities.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVrCapabilities.m
new file mode 100644
index 000000000..601a3a727
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVrCapabilities.m
@@ -0,0 +1,42 @@
+// SDLVrCapabilities.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLVrCapabilities.h"
+
+SDLVrCapabilities* SDLVrCapabilities_TEXT = nil;
+
+NSMutableArray* SDLVrCapabilities_values = nil;
+
+@implementation SDLVrCapabilities
+
++(SDLVrCapabilities*) valueOf:(NSString*) value {
+ for (SDLVrCapabilities* item in SDLVrCapabilities.values) {
+ //NOTE: This was added for Sync Module Compatability, V1 module resturns "Text" and a
+ // Gen 1.1 module returns "TEXT", the new if statement makes a case insensitive
+ // check instead to accept both
+ //if ([item.value isEqualToString:value]) {
+ if (item.value && [item.value caseInsensitiveCompare:value] == NSOrderedSame) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLVrCapabilities_values == nil) {
+ SDLVrCapabilities_values = [[NSMutableArray alloc] initWithObjects:
+ SDLVrCapabilities.TEXT,
+ nil];
+ }
+ return SDLVrCapabilities_values;
+}
+
++(SDLVrCapabilities*) TEXT {
+ if (SDLVrCapabilities_TEXT == nil) {
+ SDLVrCapabilities_TEXT = [[SDLVrCapabilities alloc] initWithValue:@"TEXT"];
+ }
+ return SDLVrCapabilities_TEXT;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLVrHelpItem.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVrHelpItem.h
new file mode 100644
index 000000000..2a027fc17
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVrHelpItem.h
@@ -0,0 +1,19 @@
+// SDLVrHelpItem.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLRPCMessage.h"
+
+#import "SDLImage.h"
+
+@interface SDLVrHelpItem : SDLRPCStruct {}
+
+-(id) init;
+-(id) initWithDictionary:(NSMutableDictionary*) dict;
+
+@property(strong) NSString* text;
+@property(strong) SDLImage* image;
+@property(strong) NSNumber* position;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLVrHelpItem.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVrHelpItem.m
new file mode 100644
index 000000000..5edb237d6
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLVrHelpItem.m
@@ -0,0 +1,62 @@
+// SDLVrHelpItem.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLVrHelpItem.h"
+
+#import "SDLNames.h"
+
+@implementation SDLVrHelpItem
+
+-(id) init {
+ if (self = [super init]) {}
+ return self;
+}
+
+-(id) initWithDictionary:(NSMutableDictionary*) dict {
+ if (self = [super initWithDictionary:dict]) {}
+ return self;
+}
+
+-(void) setText:(NSString*) text {
+ if (text != nil) {
+ [store setObject:text forKey:NAMES_text];
+ } else {
+ [store removeObjectForKey:NAMES_text];
+ }
+}
+
+-(NSString*) text {
+ return [store objectForKey:NAMES_text];
+}
+
+-(void) setImage:(SDLImage*) image {
+ if (image != nil) {
+ [store setObject:image forKey:NAMES_image];
+ } else {
+ [store removeObjectForKey:NAMES_image];
+ }
+}
+
+-(SDLImage*) image {
+ NSObject* obj = [store objectForKey:NAMES_image];
+ if ([obj isKindOfClass:SDLImage.class]) {
+ return (SDLImage*)obj;
+ } else {
+ return [[SDLImage alloc] initWithDictionary:(NSMutableDictionary*)obj];
+ }
+}
+
+-(void) setPosition:(NSNumber*) position {
+ if (position != nil) {
+ [store setObject:position forKey:NAMES_position];
+ } else {
+ [store removeObjectForKey:NAMES_position];
+ }
+}
+
+-(NSNumber*) position {
+ return [store objectForKey:NAMES_position];
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLWarningLightStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLWarningLightStatus.h
new file mode 100644
index 000000000..9a603f493
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLWarningLightStatus.h
@@ -0,0 +1,18 @@
+// SDLWarningLightStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLWarningLightStatus : SDLEnum {}
+
++(SDLWarningLightStatus*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLWarningLightStatus*) OFF;
++(SDLWarningLightStatus*) ON;
++(SDLWarningLightStatus*) FLASH;
++(SDLWarningLightStatus*) NOT_USED;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLWarningLightStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLWarningLightStatus.m
new file mode 100644
index 000000000..dca24e6bc
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLWarningLightStatus.m
@@ -0,0 +1,65 @@
+// SDLWarningLightStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLWarningLightStatus.h"
+
+SDLWarningLightStatus* SDLWarningLightStatus_OFF = nil;
+SDLWarningLightStatus* SDLWarningLightStatus_ON = nil;
+SDLWarningLightStatus* SDLWarningLightStatus_FLASH = nil;
+SDLWarningLightStatus* SDLWarningLightStatus_NOT_USED = nil;
+
+NSMutableArray* SDLWarningLightStatus_values = nil;
+
+@implementation SDLWarningLightStatus
+
++(SDLWarningLightStatus*) valueOf:(NSString*) value {
+ for (SDLWarningLightStatus* item in SDLWarningLightStatus.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLWarningLightStatus_values == nil) {
+ SDLWarningLightStatus_values = [[NSMutableArray alloc] initWithObjects:
+ SDLWarningLightStatus.OFF,
+ SDLWarningLightStatus.ON,
+ SDLWarningLightStatus.FLASH,
+ SDLWarningLightStatus.NOT_USED,
+ nil];
+ }
+ return SDLWarningLightStatus_values;
+}
+
++(SDLWarningLightStatus*) OFF {
+ if (SDLWarningLightStatus_OFF == nil) {
+ SDLWarningLightStatus_OFF = [[SDLWarningLightStatus alloc] initWithValue:@"OFF"];
+ }
+ return SDLWarningLightStatus_OFF;
+}
+
++(SDLWarningLightStatus*) ON {
+ if (SDLWarningLightStatus_ON == nil) {
+ SDLWarningLightStatus_ON = [[SDLWarningLightStatus alloc] initWithValue:@"ON"];
+ }
+ return SDLWarningLightStatus_ON;
+}
+
++(SDLWarningLightStatus*) FLASH {
+ if (SDLWarningLightStatus_FLASH == nil) {
+ SDLWarningLightStatus_FLASH = [[SDLWarningLightStatus alloc] initWithValue:@"FLASH"];
+ }
+ return SDLWarningLightStatus_FLASH;
+}
+
++(SDLWarningLightStatus*) NOT_USED {
+ if (SDLWarningLightStatus_NOT_USED == nil) {
+ SDLWarningLightStatus_NOT_USED = [[SDLWarningLightStatus alloc] initWithValue:@"NOT_USED"];
+ }
+ return SDLWarningLightStatus_NOT_USED;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLWiperStatus.h b/SmartDeviceLink-iOS/SmartDeviceLink/SDLWiperStatus.h
new file mode 100644
index 000000000..0e709681d
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLWiperStatus.h
@@ -0,0 +1,29 @@
+// SDLWiperStatus.h
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+
+#import "SDLEnum.h"
+
+@interface SDLWiperStatus : SDLEnum {}
+
++(SDLWiperStatus*) valueOf:(NSString*) value;
++(NSMutableArray*) values;
+
++(SDLWiperStatus*) OFF;
++(SDLWiperStatus*) AUTO_OFF;
++(SDLWiperStatus*) OFF_MOVING;
++(SDLWiperStatus*) MAN_INT_OFF;
++(SDLWiperStatus*) MAN_INT_ON;
++(SDLWiperStatus*) MAN_LOW;
++(SDLWiperStatus*) MAN_HIGH;
++(SDLWiperStatus*) MAN_FLICK;
++(SDLWiperStatus*) WASH;
++(SDLWiperStatus*) AUTO_LOW;
++(SDLWiperStatus*) AUTO_HIGH;
++(SDLWiperStatus*) COURTESYWIPE;
++(SDLWiperStatus*) AUTO_ADJUST;
++(SDLWiperStatus*) STALLED;
++(SDLWiperStatus*) NO_DATA_EXISTS;
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SDLWiperStatus.m b/SmartDeviceLink-iOS/SmartDeviceLink/SDLWiperStatus.m
new file mode 100644
index 000000000..e780455df
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SDLWiperStatus.m
@@ -0,0 +1,164 @@
+// SDLWiperStatus.m
+//
+// Copyright (c) 2014 Ford Motor Company. All rights reserved.
+
+#import "SDLWiperStatus.h"
+
+SDLWiperStatus* SDLWiperStatus_OFF = nil;
+SDLWiperStatus* SDLWiperStatus_AUTO_OFF = nil;
+SDLWiperStatus* SDLWiperStatus_OFF_MOVING = nil;
+SDLWiperStatus* SDLWiperStatus_MAN_INT_OFF = nil;
+SDLWiperStatus* SDLWiperStatus_MAN_INT_ON = nil;
+SDLWiperStatus* SDLWiperStatus_MAN_LOW = nil;
+SDLWiperStatus* SDLWiperStatus_MAN_HIGH = nil;
+SDLWiperStatus* SDLWiperStatus_MAN_FLICK = nil;
+SDLWiperStatus* SDLWiperStatus_WASH = nil;
+SDLWiperStatus* SDLWiperStatus_AUTO_LOW = nil;
+SDLWiperStatus* SDLWiperStatus_AUTO_HIGH = nil;
+SDLWiperStatus* SDLWiperStatus_COURTESYWIPE = nil;
+SDLWiperStatus* SDLWiperStatus_AUTO_ADJUST = nil;
+SDLWiperStatus* SDLWiperStatus_STALLED = nil;
+SDLWiperStatus* SDLWiperStatus_NO_DATA_EXISTS = nil;
+
+NSMutableArray* SDLWiperStatus_values = nil;
+
+@implementation SDLWiperStatus
+
++(SDLWiperStatus*) valueOf:(NSString*) value {
+ for (SDLWiperStatus* item in SDLWiperStatus.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++(NSMutableArray*) values {
+ if (SDLWiperStatus_values == nil) {
+ SDLWiperStatus_values = [[NSMutableArray alloc] initWithObjects:
+ SDLWiperStatus.OFF,
+ SDLWiperStatus.AUTO_OFF,
+ SDLWiperStatus.OFF_MOVING,
+ SDLWiperStatus.MAN_INT_OFF,
+ SDLWiperStatus.MAN_INT_ON,
+ SDLWiperStatus.MAN_LOW,
+ SDLWiperStatus.MAN_HIGH,
+ SDLWiperStatus.MAN_FLICK,
+ SDLWiperStatus.WASH,
+ SDLWiperStatus.AUTO_LOW,
+ SDLWiperStatus.AUTO_HIGH,
+ SDLWiperStatus.COURTESYWIPE,
+ SDLWiperStatus.AUTO_ADJUST,
+ SDLWiperStatus.STALLED,
+ SDLWiperStatus.NO_DATA_EXISTS,
+ nil];
+ }
+ return SDLWiperStatus_values;
+}
+
++(SDLWiperStatus*) OFF {
+ if (SDLWiperStatus_OFF == nil) {
+ SDLWiperStatus_OFF = [[SDLWiperStatus alloc] initWithValue:@"OFF"];
+ }
+ return SDLWiperStatus_OFF;
+}
+
++(SDLWiperStatus*) AUTO_OFF {
+ if (SDLWiperStatus_AUTO_OFF == nil) {
+ SDLWiperStatus_AUTO_OFF = [[SDLWiperStatus alloc] initWithValue:@"AUTO_OFF"];
+ }
+ return SDLWiperStatus_AUTO_OFF;
+}
+
++(SDLWiperStatus*) OFF_MOVING {
+ if (SDLWiperStatus_OFF_MOVING == nil) {
+ SDLWiperStatus_OFF_MOVING = [[SDLWiperStatus alloc] initWithValue:@"OFF_MOVING"];
+ }
+ return SDLWiperStatus_OFF_MOVING;
+}
+
++(SDLWiperStatus*) MAN_INT_OFF {
+ if (SDLWiperStatus_MAN_INT_OFF == nil) {
+ SDLWiperStatus_MAN_INT_OFF = [[SDLWiperStatus alloc] initWithValue:@"MAN_INT_OFF"];
+ }
+ return SDLWiperStatus_MAN_INT_OFF;
+}
+
++(SDLWiperStatus*) MAN_INT_ON {
+ if (SDLWiperStatus_MAN_INT_ON == nil) {
+ SDLWiperStatus_MAN_INT_ON = [[SDLWiperStatus alloc] initWithValue:@"MAN_INT_ON"];
+ }
+ return SDLWiperStatus_MAN_INT_ON;
+}
+
++(SDLWiperStatus*) MAN_LOW {
+ if (SDLWiperStatus_MAN_LOW == nil) {
+ SDLWiperStatus_MAN_LOW = [[SDLWiperStatus alloc] initWithValue:@"MAN_LOW"];
+ }
+ return SDLWiperStatus_MAN_LOW;
+}
+
++(SDLWiperStatus*) MAN_HIGH {
+ if (SDLWiperStatus_MAN_HIGH == nil) {
+ SDLWiperStatus_MAN_HIGH = [[SDLWiperStatus alloc] initWithValue:@"MAN_HIGH"];
+ }
+ return SDLWiperStatus_MAN_HIGH;
+}
+
++(SDLWiperStatus*) MAN_FLICK {
+ if (SDLWiperStatus_MAN_FLICK == nil) {
+ SDLWiperStatus_MAN_FLICK = [[SDLWiperStatus alloc] initWithValue:@"MAN_FLICK"];
+ }
+ return SDLWiperStatus_MAN_FLICK;
+}
+
++(SDLWiperStatus*) WASH {
+ if (SDLWiperStatus_WASH == nil) {
+ SDLWiperStatus_WASH = [[SDLWiperStatus alloc] initWithValue:@"WASH"];
+ }
+ return SDLWiperStatus_WASH;
+}
+
++(SDLWiperStatus*) AUTO_LOW {
+ if (SDLWiperStatus_AUTO_LOW == nil) {
+ SDLWiperStatus_AUTO_LOW = [[SDLWiperStatus alloc] initWithValue:@"AUTO_LOW"];
+ }
+ return SDLWiperStatus_AUTO_LOW;
+}
+
++(SDLWiperStatus*) AUTO_HIGH {
+ if (SDLWiperStatus_AUTO_HIGH == nil) {
+ SDLWiperStatus_AUTO_HIGH = [[SDLWiperStatus alloc] initWithValue:@"AUTO_HIGH"];
+ }
+ return SDLWiperStatus_AUTO_HIGH;
+}
+
++(SDLWiperStatus*) COURTESYWIPE {
+ if (SDLWiperStatus_COURTESYWIPE == nil) {
+ SDLWiperStatus_COURTESYWIPE = [[SDLWiperStatus alloc] initWithValue:@"COURTESYWIPE"];
+ }
+ return SDLWiperStatus_COURTESYWIPE;
+}
+
++(SDLWiperStatus*) AUTO_ADJUST {
+ if (SDLWiperStatus_AUTO_ADJUST == nil) {
+ SDLWiperStatus_AUTO_ADJUST = [[SDLWiperStatus alloc] initWithValue:@"AUTO_ADJUST"];
+ }
+ return SDLWiperStatus_AUTO_ADJUST;
+}
+
++(SDLWiperStatus*) STALLED {
+ if (SDLWiperStatus_STALLED == nil) {
+ SDLWiperStatus_STALLED = [[SDLWiperStatus alloc] initWithValue:@"STALLED"];
+ }
+ return SDLWiperStatus_STALLED;
+}
+
++(SDLWiperStatus*) NO_DATA_EXISTS {
+ if (SDLWiperStatus_NO_DATA_EXISTS == nil) {
+ SDLWiperStatus_NO_DATA_EXISTS = [[SDLWiperStatus alloc] initWithValue:@"NO_DATA_EXISTS"];
+ }
+ return SDLWiperStatus_NO_DATA_EXISTS;
+}
+
+@end
diff --git a/SmartDeviceLink-iOS/SmartDeviceLink/SmartDeviceLink.h b/SmartDeviceLink-iOS/SmartDeviceLink/SmartDeviceLink.h
new file mode 100644
index 000000000..ce6a0ff28
--- /dev/null
+++ b/SmartDeviceLink-iOS/SmartDeviceLink/SmartDeviceLink.h
@@ -0,0 +1,273 @@
+//
+// SmartDeviceLink.h
+// SmartDeviceLink
+//
+// Created by Joel Fischer on 2/5/15.
+// Copyright (c) 2015 smartdevicelink. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+//! Project version number for SmartDeviceLink.
+FOUNDATION_EXPORT double SmartDeviceLinkVersionNumber;
+
+//! Project version string for SmartDeviceLink.
+FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
+
+/**** Utilities *****/
+#import <SmartDeviceLink/SDLJingle.h>
+
+/***** Proxy *****/
+#import <SmartDeviceLink/SDLProxy.h>
+#import <SmartDeviceLink/SDLProxyListener.h>
+#import <SmartDeviceLink/SDLProxyFactory.h>
+#import <SmartDeviceLink/SDLTTSChunkFactory.h>
+
+/***** Debug *****/
+#import <SmartDeviceLink/SDLConsoleController.h>
+#import <SmartDeviceLink/SDLDebugTool.h>
+#import <SmartDeviceLink/SDLSiphonServer.h>
+
+/***** Transport *****/
+#import <SmartDeviceLink/SDLAbstractTransport.h>
+#import <SmartDeviceLink/SDLIAPTransport.h>
+#import <SmartDeviceLink/SDLTCPTransport.h>
+#import <SmartDeviceLink/SDLTransport.h>
+#import <SmartDeviceLink/SDLTransportDelegate.h>
+#import <SmartDeviceLink/SDLInterfaceProtocol.h>
+
+/***** Protocol *****/
+#import <SmartDeviceLink/SDLProtocolListener.h>
+#import <SmartDeviceLink/SDLAbstractProtocol.h>
+#import <SmartDeviceLink/SDLProtocol.h>
+
+// Header
+#import <SmartDeviceLink/SDLProtocolHeader.h>
+
+// Message
+#import <SmartDeviceLink/SDLProtocolMessage.h>
+
+/***** RPCs *****/
+// Superclasses
+#import <SmartDeviceLink/SDLEnum.h>
+#import <SmartDeviceLink/SDLRPCMessage.h>
+#import <SmartDeviceLink/SDLRPCNotification.h>
+#import <SmartDeviceLink/SDLRPCRequest.h>
+#import <SmartDeviceLink/SDLRPCResponse.h>
+
+// Factories
+#import <SmartDeviceLink/SDLRPCRequestFactory.h>
+
+// Requests
+#import <SmartDeviceLink/SDLAddCommand.h>
+#import <SmartDeviceLink/SDLAddSubMenu.h>
+#import <SmartDeviceLink/SDLAlert.h>
+#import <SmartDeviceLink/SDLAlertManeuver.h>
+#import <SmartDeviceLink/SDLChangeRegistration.h>
+#import <SmartDeviceLink/SDLCreateInteractionChoiceSet.h>
+#import <SmartDeviceLink/SDLDeleteCommand.h>
+#import <SmartDeviceLink/SDLDeleteFile.h>
+#import <SmartDeviceLink/SDLDeleteInteractionChoiceSet.h>
+#import <SmartDeviceLink/SDLDeleteSubMenu.h>
+#import <SmartDeviceLink/SDLDiagnosticMessage.h>
+#import <SmartDeviceLink/SDLEncodedSyncPData.h>
+#import <SmartDeviceLink/SDLEndAudioPassThru.h>
+#import <SmartDeviceLink/SDLGetDTCs.h>
+#import <SmartDeviceLink/SDLGetVehicleData.h>
+#import <SmartDeviceLink/SDLListFiles.h>
+#import <SmartDeviceLink/SDLPerformAudioPassThru.h>
+#import <SmartDeviceLink/SDLPerformInteraction.h>
+#import <SmartDeviceLink/SDLPutFile.h>
+#import <SmartDeviceLink/SDLReadDID.h>
+#import <SmartDeviceLink/SDLRegisterAppInterface.h>
+#import <SmartDeviceLink/SDLResetGlobalProperties.h>
+#import <SmartDeviceLink/SDLScrollableMessage.h>
+#import <SmartDeviceLink/SDLSetAppIcon.h>
+#import <SmartDeviceLink/SDLSetDisplayLayout.h>
+#import <SmartDeviceLink/SDLSetGlobalProperties.h>
+#import <SmartDeviceLink/SDLSetMediaClockTimer.h>
+#import <SmartDeviceLink/SDLShow.h>
+#import <SmartDeviceLink/SDLShowConstantTBT.h>
+#import <SmartDeviceLink/SDLSlider.h>
+#import <SmartDeviceLink/SDLSpeak.h>
+#import <SmartDeviceLink/SDLSubscribeButton.h>
+#import <SmartDeviceLink/SDLSubscribeVehicleData.h>
+#import <SmartDeviceLink/SDLSyncPData.h>
+#import <SmartDeviceLink/SDLUnregisterAppInterface.h>
+#import <SmartDeviceLink/SDLUnsubscribeButton.h>
+#import <SmartDeviceLink/SDLUnsubscribeVehicleData.h>
+#import <SmartDeviceLink/SDLUpdateTurnList.h>
+
+// Responses
+#import <SmartDeviceLink/SDLAddCommandResponse.h>
+#import <SmartDeviceLink/SDLAddSubMenuResponse.h>
+#import <SmartDeviceLink/SDLAlertManeuverResponse.h>
+#import <SmartDeviceLink/SDLAlertResponse.h>
+#import <SmartDeviceLink/SDLChangeRegistrationResponse.h>
+#import <SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h>
+#import <SmartDeviceLink/SDLDeleteCommandResponse.h>
+#import <SmartDeviceLink/SDLDeleteFileResponse.h>
+#import <SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h>
+#import <SmartDeviceLink/SDLDeleteSubMenuResponse.h>
+#import <SmartDeviceLink/SDLDiagnosticMessageResponse.h>
+#import <SmartDeviceLink/SDLEncodedSyncPDataResponse.h>
+#import <SmartDeviceLink/SDLEndAudioPassThruResponse.h>
+#import <SmartDeviceLink/SDLGenericResponse.h>
+#import <SmartDeviceLink/SDLGetDTCsResponse.h>
+#import <SmartDeviceLink/SDLGetVehicleDataResponse.h>
+#import <SmartDeviceLink/SDLListFilesResponse.h>
+#import <SmartDeviceLink/SDLPerformAudioPassThruResponse.h>
+#import <SmartDeviceLink/SDLPerformInteractionResponse.h>
+#import <SmartDeviceLink/SDLPutFileResponse.h>
+#import <SmartDeviceLink/SDLReadDIDResponse.h>
+#import <SmartDeviceLink/SDLRegisterAppInterfaceResponse.h>
+#import <SmartDeviceLink/SDLResetGlobalPropertiesResponse.h>
+#import <SmartDeviceLink/SDLScrollableMessageResponse.h>
+#import <SmartDeviceLink/SDLSetAppIconResponse.h>
+#import <SmartDeviceLink/SDLSetDisplayLayoutResponse.h>
+#import <SmartDeviceLink/SDLSetGlobalPropertiesResponse.h>
+#import <SmartDeviceLink/SDLSetMediaClockTimerResponse.h>
+#import <SmartDeviceLink/SDLShowConstantTBTResponse.h>
+#import <SmartDeviceLink/SDLShowResponse.h>
+#import <SmartDeviceLink/SDLSliderResponse.h>
+#import <SmartDeviceLink/SDLSpeakResponse.h>
+#import <SmartDeviceLink/SDLSubscribeButtonResponse.h>
+#import <SmartDeviceLink/SDLSubscribeVehicleDataResponse.h>
+#import <SmartDeviceLink/SDLSyncPDataResponse.h>
+#import <SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h>
+#import <SmartDeviceLink/SDLUnsubscribeButtonResponse.h>
+#import <SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h>
+#import <SmartDeviceLink/SDLUpdateTurnListResponse.h>
+
+// Notifications
+#import <SmartDeviceLink/SDLOnAppInterfaceUnregistered.h>
+#import <SmartDeviceLink/SDLOnAudioPassThru.h>
+#import <SmartDeviceLink/SDLOnButtonEvent.h>
+#import <SmartDeviceLink/SDLOnButtonPress.h>
+#import <SmartDeviceLink/SDLOnCommand.h>
+#import <SmartDeviceLink/SDLOnDriverDistraction.h>
+#import <SmartDeviceLink/SDLOnEncodedSyncPData.h>
+#import <SmartDeviceLink/SDLOnHashChange.h>
+#import <SmartDeviceLink/SDLOnHMIStatus.h>
+#import <SmartDeviceLink/SDLOnKeyboardInput.h>
+#import <SmartDeviceLink/SDLOnLanguageChange.h>
+#import <SmartDeviceLink/SDLOnLockScreenStatus.h>
+#import <SmartDeviceLink/SDLOnPermissionsChange.h>
+#import <SmartDeviceLink/SDLOnSyncPData.h>
+#import <SmartDeviceLink/SDLOnSystemRequest.h>
+#import <SmartDeviceLink/SDLOnTBTClientState.h>
+#import <SmartDeviceLink/SDLOnTouchEvent.h>
+#import <SmartDeviceLink/SDLOnVehicleData.h>
+
+// Structs
+#import <SmartDeviceLink/SDLAirbagStatus.h>
+#import <SmartDeviceLink/SDLAudioPassThruCapabilities.h>
+#import <SmartDeviceLink/SDLBeltStatus.h>
+#import <SmartDeviceLink/SDLBodyInformation.h>
+#import <SmartDeviceLink/SDLButtonCapabilities.h>
+#import <SmartDeviceLink/SDLChoice.h>
+#import <SmartDeviceLink/SDLClusterModeStatus.h>
+#import <SmartDeviceLink/SDLDeviceInfo.h>
+#import <SmartDeviceLink/SDLDeviceStatus.h>
+#import <SmartDeviceLink/SDLDIDResult.h>
+#import <SmartDeviceLink/SDLDisplayCapabilities.h>
+#import <SmartDeviceLink/SDLECallInfo.h>
+#import <SmartDeviceLink/SDLEmergencyEvent.h>
+#import <SmartDeviceLink/SDLGPSData.h>
+#import <SmartDeviceLink/SDLHeadLampStatus.h>
+#import <SmartDeviceLink/SDLHMIPermissions.h>
+#import <SmartDeviceLink/SDLImage.h>
+#import <SmartDeviceLink/SDLImageField.h>
+#import <SmartDeviceLink/SDLImageResolution.h>
+#import <SmartDeviceLink/SDLKeyboardProperties.h>
+#import <SmartDeviceLink/SDLMenuParams.h>
+#import <SmartDeviceLink/SDLMyKey.h>
+#import <SmartDeviceLink/SDLParameterPermissions.h>
+#import <SmartDeviceLink/SDLPermissionItem.h>
+#import <SmartDeviceLink/SDLPresetBankCapabilities.h>
+#import <SmartDeviceLink/SDLScreenParams.h>
+#import <SmartDeviceLink/SDLSingleTireStatus.h>
+#import <SmartDeviceLink/SDLSoftButton.h>
+#import <SmartDeviceLink/SDLSoftButtonCapabilities.h>
+#import <SmartDeviceLink/SDLStartTime.h>
+#import <SmartDeviceLink/SDLSyncMsgVersion.h>
+#import <SmartDeviceLink/SDLTextField.h>
+#import <SmartDeviceLink/SDLTireStatus.h>
+#import <SmartDeviceLink/SDLTouchCoord.h>
+#import <SmartDeviceLink/SDLTouchEvent.h>
+#import <SmartDeviceLink/SDLTouchEventCapabilities.h>
+#import <SmartDeviceLink/SDLTTSChunk.h>
+#import <SmartDeviceLink/SDLTurn.h>
+#import <SmartDeviceLink/SDLVehicleDataResult.h>
+#import <SmartDeviceLink/SDLVehicleType.h>
+#import <SmartDeviceLink/SDLVrHelpItem.h>
+
+// Enums
+#import <SmartDeviceLink/SDLAmbientLightStatus.h>
+#import <SmartDeviceLink/SDLAppHMIType.h>
+#import <SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h>
+#import <SmartDeviceLink/SDLAudioStreamingState.h>
+#import <SmartDeviceLink/SDLAudioType.h>
+#import <SmartDeviceLink/SDLBitsPerSample.h>
+#import <SmartDeviceLink/SDLButtonEventMode.h>
+#import <SmartDeviceLink/SDLButtonName.h>
+#import <SmartDeviceLink/SDLButtonPressMode.h>
+#import <SmartDeviceLink/SDLCarModeStatus.h>
+#import <SmartDeviceLink/SDLCharacterSet.h>
+#import <SmartDeviceLink/SDLCompassDirection.h>
+#import <SmartDeviceLink/SDLComponentVolumeStatus.h>
+#import <SmartDeviceLink/SDLDeviceLevelStatus.h>
+#import <SmartDeviceLink/SDLDimension.h>
+#import <SmartDeviceLink/SDLDisplayType.h>
+#import <SmartDeviceLink/SDLDriverDistractionState.h>
+#import <SmartDeviceLink/SDLECallConfirmationStatus.h>
+#import <SmartDeviceLink/SDLEmergencyEventType.h>
+#import <SmartDeviceLink/SDLFileType.h>
+#import <SmartDeviceLink/SDLFuelCutoffStatus.h>
+#import <SmartDeviceLink/SDLGlobalProperty.h>
+#import <SmartDeviceLink/SDLHMILevel.h>
+#import <SmartDeviceLink/SDLHMIZoneCapabilities.h>
+#import <SmartDeviceLink/SDLIgnitionStableStatus.h>
+#import <SmartDeviceLink/SDLIgnitionStatus.h>
+#import <SmartDeviceLink/SDLImageFieldName.h>
+#import <SmartDeviceLink/SDLImageType.h>
+#import <SmartDeviceLink/SDLInteractionMode.h>
+#import <SmartDeviceLink/SDLKeyboardEvent.h>
+#import <SmartDeviceLink/SDLKeyboardLayout.h>
+#import <SmartDeviceLink/SDLKeypressMode.h>
+#import <SmartDeviceLink/SDLLanguage.h>
+#import <SmartDeviceLink/SDLLayoutMode.h>
+#import <SmartDeviceLink/SDLLockScreenStatus.h>
+#import <SmartDeviceLink/SDLMaintenanceModeStatus.h>
+#import <SmartDeviceLink/SDLMediaClockFormat.h>
+#import <SmartDeviceLink/SDLPermissionStatus.h>
+#import <SmartDeviceLink/SDLPowerModeQualificationStatus.h>
+#import <SmartDeviceLink/SDLPowerModeStatus.h>
+#import <SmartDeviceLink/SDLPredefinedLayout.h>
+#import <SmartDeviceLink/SDLPrerecordedSpeech.h>
+#import <SmartDeviceLink/SDLPrimaryAudioSource.h>
+#import <SmartDeviceLink/SDLPRNDL.h>
+#import <SmartDeviceLink/SDLRequestType.h>
+#import <SmartDeviceLink/SDLResult.h>
+#import <SmartDeviceLink/SDLRPCMessageType.h>
+#import <SmartDeviceLink/SDLSamplingRate.h>
+#import <SmartDeviceLink/SDLSoftButtonType.h>
+#import <SmartDeviceLink/SDLSpeechCapabilities.h>
+#import <SmartDeviceLink/SDLSystemAction.h>
+#import <SmartDeviceLink/SDLSystemContext.h>
+#import <SmartDeviceLink/SDLTBTState.h>
+#import <SmartDeviceLink/SDLTextAlignment.h>
+#import <SmartDeviceLink/SDLTextFieldName.h>
+#import <SmartDeviceLink/SDLTimerMode.h>
+#import <SmartDeviceLink/SDLTouchType.h>
+#import <SmartDeviceLink/SDLTriggerSource.h>
+#import <SmartDeviceLink/SDLUpdateMode.h>
+#import <SmartDeviceLink/SDLVehicleDataActiveStatus.h>
+#import <SmartDeviceLink/SDLVehicleDataEventStatus.h>
+#import <SmartDeviceLink/SDLVehicleDataNotificationStatus.h>
+#import <SmartDeviceLink/SDLVehicleDataResultCode.h>
+#import <SmartDeviceLink/SDLVehicleDataStatus.h>
+#import <SmartDeviceLink/SDLVehicleDataType.h>
+#import <SmartDeviceLink/SDLVrCapabilities.h>
+#import <SmartDeviceLink/SDLWarningLightStatus.h>
+#import <SmartDeviceLink/SDLWiperStatus.h>